[英]vb.net LINQ select Distinct to a List
我有一個datatable
以具有一些重復值的列,我希望將這些值添加到listbox
,但沒有重復
我嘗試了以下
Dim a = From row In table.AsEnumerable.Distinct.ToList Select row.Field(Of String)("name")
但是它給了我重復的值,沒有重復該怎么辦?
我相信每一行中都有更多唯一的列,這就是為什么不重復列未按預期返回結果的原因。 取而代之的是,您應該先選擇列,然后再對它們應用不同的列。
所以試試這個:
Dim a = (From row In table.AsEnumerable()
Select row.Field(Of String)("name")).Distinct().ToList()
希望這會有所幫助!
您可以將IEqualityComparer傳遞給不同的函數。 查看此答案與lambda的Distinct()嗎?
我有同樣的問題。 我發現在匿名類型上,它們的工作原理截然不同。 因此,我首先進行區分,然后復制到列表中。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.