我如何使用Linq从对象列表中获取唯一的属性列表?

我正在尝试使用Linq返回一个id列表,给出一个id为属性的对象列表。 我希望能够做到这一点,而无需循环每个对象,并提出我find的唯一ID。

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

public class MyClass { public int ID { get; set; } } 

我想要做的就是编写一个Linq查询来返回这些Id的列表

我该如何做,给IList<MyClass>这样它返回一个IEnumerable<int>的id?

我相信它必须能够使用Linq在一行或两行中完成,而不是循环遍历MyClass列表中的每个项目,并将唯一值添加到列表中。

任何帮助创build一个优雅的解决scheme将不胜感激!

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

使用Distinct运算符 :

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

使用直接LinqDistinct()扩展:

 var idList = (from x in yourList select x.ID).Distinct(); 
  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); } 

OUTPUT

1234567890