我有一个列表(硬件)-该列表称为HWModels
类硬件具有以下属性:
通过读取CSV文件填充列表,填充后,我想基于ModelName返回不同的记录
我尝试这样做,如下所示:
(From a In HWModels Select a.ModelName).Distinct
但这是不对的,因为我最终仅得到了ModelName的列表,而没有别的。
如何获得Distinct函数以返回列表中的所有其他类成员?
最佳答案
LINQ to Objects并没有提供任何可以“与投影区分开”的功能。您可以按名称分组,然后取每个分组中的第一个元素,但这很丑陋。
我的MoreLINQ提供了 DistinctBy
方法-在C#中,您将使用:
var distinct = HWModels.DistinctBy(x => x.ModelName).ToList();
大概VB就像
Dim distinct = HWModels.DistinctBy(Function(x) x.ModelName).ToList
抱歉任何语法错误:(
关于vb.net - 如何使用Linq从List(Of T)中获得不同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9645326/