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的列表
如果一个
我相信一定可以使用LINQ在一行或两行中完成它,而不是循环遍历MyClass列表中的每个项并将唯一值添加到列表中。
任何帮助创造一个优雅的解决方案都将不胜感激!
1 | IEnumerable<int> ids = list.Select(x=>x.ID).Distinct(); |
使用distinct运算符:
1 | var idList = yourList.Select(x=> x.ID).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); } |
产量
十二亿三千四百五十六万七千八百九十