簡體   English   中英

vb.net LINQ選擇與列表不同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM