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

我试图使用Linq返回一个id列表,给出一个id为属性的对象列表。 我希望能够在不循环每个对象的情况下做到这一点,并提取我找到的唯一ID。

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

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

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

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

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

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


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();
链接地址: http://www.djcxy.com/p/51359.html

上一篇: How do I use Linq to obtain a unique list of properties from a list of objects?

下一篇: Clean some properties value in List with Linq based on a value of the list