关于类:如何使用Linq从对象列表中获取唯一的属性列表?

How do I use Linq to obtain a unique list of properties from a list of objects?

我正试图使用LINQ返回一个ID列表,给出一个ID为属性的对象列表。我希望能够做到这一点,而不需要循环遍历每个对象,并提取我找到的唯一ID。

我有一个MyClass类型的对象列表,这个类的一个属性是ID。

1
2
3
4
public class MyClass
{
  public int ID { get; set; }
}

我要做的是编写一个LINQ查询来返回这些ID的列表

如果一个IList返回一个IEnumerable的ID,我该怎么做?

我相信一定可以使用LINQ在一行或两行中完成它,而不是循环遍历MyClass列表中的每个项并将唯一值添加到列表中。

任何帮助创造一个优雅的解决方案都将不胜感激!


1
IEnumerable<int> ids = list.Select(x=>x.ID).Distinct();


使用distinct运算符:

1
var idList = yourList.Select(x=> x.ID).Distinct();


使用直线直线直线,带Distinct()延长线:

1
var idList = (from x in yourList select x.ID).Distinct();

1
2
3
4
5
6
7
8
9
        int[] numbers = {1,2,3,4,5,3,6,4,7,8,9,1,0 };
        var nonRepeats = (from n in numbers select n).Distinct();


        foreach (var d in nonRepeats)
        {

            Response.Write(d);
        }

产量

十二亿三千四百五十六万七千八百九十