将IEnumerable的一列中的所有不同项分配给SelectList

时间:2013-05-31 17:13:55

标签: c# linq

我有一个包含多个“列”数据的IEnumerable。我想从一列中获取所有不同的值,并将其分配给SelectList。

我尝试过使用像SelectMany,Select和Distinct这样的LINQ表达式,但我对LINQ并不是很精通,而且我只是在黑暗中刺伤。有一个简单的方法吗?

2 个答案:

答案 0 :(得分:7)

您可以将Select和Distinct组合使用。

首先,使用“选择”选择所需的值。接下来,使用Distinct仅采用不同的值。

为简单起见,这些可以链接如下:

var selectListData = srcEnumerable.Select(x => x.DesiredField).Distinct();

答案 1 :(得分:1)

作为Jim的答案,你可以使用select和distinct。但您可以通过以下一次通话使用morelinq (Extensions to LINQ to Objects)

来完成此操作
var list1 = products.DistinctBy(x=> x.Code);