linq有区别吗?

cho*_*bo2 7 c# linq distinct

我想知道如何实现这一目标?

我想从对象集合中只获取不同的名称

MyObject a = new Object();
a.Name = 'One';
a.Value = '10';


MyObject b = new Object();
b.Name = 'One';
b.Value = '15';


MyObject c = new Object();
c.Name = 'Two';
c.Value = '10';
Run Code Online (Sandbox Code Playgroud)

所以我只想取回这个名字.在这种情况下,我不关心这个名称的价值.

所以我试过了

//将所有对象添加到集合中.

myCollection.Disinct()..Select(x => new MyClassToStore() {Text = x.Name, Value = x.Name}).ToList());
Run Code Online (Sandbox Code Playgroud)

但是我需要在属性级别而不是在对象级别进行区分.所以我要回"一"和"两".现在我回来了"一个","一个"和"两个".

我看到一个名为morelinq的库,但我不确定是否应该使用它,因为它仍处于测试阶段,似乎不再开发了.

加上一个提取查询的整个库我不确定它是否值得.

Mar*_*mić 22

也许这样的事情会有所帮助吗?

var distinctItems = items
     .GroupBy(x => x.PropertyToCompare)
     .Select(x => x.First());
Run Code Online (Sandbox Code Playgroud)


PHe*_*erg 14

这会填充文本和值字段:

   myCollection.Select(x => x.Name).Distinct()
      .Select(x => new MyClassToStore { Text = x, Value = x }).ToList();
Run Code Online (Sandbox Code Playgroud)


Cam*_*ron 6

如果您只想要返回不同的名称,可以使用:

myCollection.Select(x => x.Name).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)