首页 文章

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

提问于
浏览
157

我正在尝试使用Linq返回一个id列表,给出id为属性的对象列表 . 我希望能够在不循环遍历每个对象并拉出我找到的唯一ID的情况下执行此操作 .

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

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

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

如果 IList<MyClass> 这样返回 IEnumerable<int> 的ids,我该怎么做呢?

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

任何帮助创建一个优雅的解决方案将非常感谢!

4 回答

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

    使用Distinct operator

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

    使用直 Linq ,扩展名为 Distinct()

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

相关问题