我想知道如何实现这一目标?
我想从对象集合中只获取不同的名称
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)
如果您只想要返回不同的名称,可以使用:
myCollection.Select(x => x.Name).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)