我正在嘗試在陣列中查找重復項并僅將重復項放入陣列中。我使用的代碼如下
Dim duplicates As List(Of String) =
WithDuplicates.GroupBy(Function(n) n) _
.Where(Function(g) g.Count() > 1) _
.Select(Function(g) g.First) _
.ToList()
Dim DuplicatesOnly As String() = duplicates.ToArray
WithDuplicates 是包含重復項的陣列。之前,我使用的是richtextbox而不是陣列,但由于執行緒的原因,我不得不切換到陣列。我不知道為什么我的代碼不再作業了。有什么想法可以讓這個作業嗎?
編輯:上面的代碼確實有效,我的代碼的另一部分導致了錯誤。
uj5u.com熱心網友回復:
這可能會幫助您:
Dim duplicates As List(Of String) = WithDuplicates.Distinct.Where(Function(el) Array.IndexOf(WithDuplicates, el) <> Array.LastIndexOf(WithDuplicates, el)).ToList
uj5u.com熱心網友回復:
你幾乎擁有它。您只需要選擇鍵而不是第一個鍵。
Dim withDuplicates As New List(Of String) From {"a", "b", "c", "a", "c"}
Dim duplicates As List(Of String) =
withDuplicates.GroupBy(Function(n) n).
Where(Function(g) g.Count() > 1).
Select(Function(g) g.Key).ToList()
Dim DuplicatesOnly As String() = duplicates.ToArray
Console.WriteLine(String.Join(", ", DuplicatesOnly))
一個,c
uj5u.com熱心網友回復:
如果有重復,您的代碼將有效。Jimi 的第一條評論可能是中肯的,但你的問題缺乏這個細節。
Dim WithDuplicates As New List(Of String) From {"aa", "b", "c", "aa", "c", "AA", "c"}
' Dim WithDuplicates As New List(Of String) From {"aa", "b", "c"} ', "aa", "c", "AA", "c"}
Dim duplicates() As String
duplicates = WithDuplicates.GroupBy(Function(n) n).
Where(Function(g) g.Count() > 1).
Select(Function(g) g.First).ToArray
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490843.html
