我有一个List(Of Hardware) – List叫做HWModels
类硬件具有以下属性:
> ModelName
>状态
> cpuStatus
> MemoryStatus
> DiskStatus
通过读取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
抱歉任何语法错误:(