我有一个列表(硬件)-该列表称为HWModels
类硬件具有以下属性:

  • 型号名称
  • 状态
  • CPU状态
  • 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
    

    抱歉任何语法错误:(

    关于vb.net - 如何使用Linq从List(Of T)中获得不同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9645326/

    10-12 20:47