我有一个datatable
包含一些重复值的列,我想将这些值添加到 alistbox
但没有重复
我尝试了以下
Dim a = From row In table.AsEnumerable.Distinct.ToList Select row.Field(Of String)("name")
但它给了我重复的值,没有重复怎么办?
我相信每一行都有更多的列是唯一的,这就是为什么 distinct 没有按预期返回结果的原因。相反,您应该首先选择列而不是对其应用不同的列。
所以试试这个:
Dim a = (From row In table.AsEnumerable()
Select row.Field(Of String)("name")).Distinct().ToList()
希望这会有所帮助!
您可以将 IEqualityComparer 传递给 distinct 函数。看到这个答案Distinct() with lambda?
我有同样的问题。我发现在匿名类型上不同的作品。所以我先做不同的然后复制到一个列表中。
Dim _ret = New List(Of Marcas)()
For Each m In lista.Select(Function(s) New With {Key .id = s.BrandNo, .nombre = s.BrandName}).Distinct()
_ret.Add(New Marcas With {.id = m.id, .nombre = m.nombre})
Next