3

リストからアイテムが何回発生したかを動的にカウントしようとしています。探している値を指定すれば、以下のように実行できますが、実際にやりたいことは、リストを反復処理し、出現回数を数え、それらを合計することです。私の現在のコードは以下の通りです:

Dim itemlist As New List(Of String)
itemlist.add("VALUE1")
itemlist.add("VALUE2")
itemlist.add("VALUE3")


    Dim count As Integer = 0

    For Each value In itemlist

        If value.Equals("VALUE1") Then count += 1

    Next

 Msgbox(count.tostring)

したがって、私のポイントは、値を検索する代わりに、アプリに値を合計させ、カウントされた出現回数をユーザーに表示させることです。これは、Excel の「COUNTIF」と同様です。LINQ を使用せずにこれについて多くを見つけることはできません、ありがとう

4

1 に答える 1

7

LINQ を使用すると、これを非常に簡単に行うことができます。

Msgbox(itemlist.Where(Function(value) value = "VALUE1").Count)

重複をカウントするには、LINQ を使用すると簡単です。

Dim itemlist As New List(Of String)
itemlist.Add("RED")
itemlist.Add("RED")
itemlist.Add("RED")
itemlist.Add("GREEN")

dim groups = itemList.GroupBy(Function(value) value)

For Each grp In groups
    Console.WriteLine(grp(0) & " - " & grp.Count )
Next

出力:

RED - 3
GREEN - 1
于 2013-02-20T19:18:16.620 に答える