我如何使用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();
使用直接Linq和Distinct()
扩展:
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