VB NET:如何从几个字符串列表中查找具有最大项目数的字符串列表

时间:2018-12-20 13:29:09

标签: vb.net list

您能帮我吗?

我有5个字符串列表,比方说A,B,C,D和E:

A has 6 items
B has 5 items 
C has 9 items 
D has 2 items
E has 7 items

我需要排序或查找“ C”作为具有最多项目的列表。

我需要在winform中创建选项卡,并且需要在每个选项卡上以编程方式创建datagridview。列表中的最大数量将是我需要创建的最大选项卡。并且在每个选项卡上,每个列表成员都会有一项。当然,并非所有选项卡都会有来自成员的项目,而该项目的项目数量很少。

以前,II的工作是遍历表和数据网格,以构造和解决该问题以避免对列表进行排序,因为我不知道在这些列表上找到最大项目。

更新:在安德鲁的帮助下

` Dim z As New List(Of List(Of String))

    Dim a As New List(Of String)
    a.Add("a1")
    a.Add("a2")
    a.Add("a3")

    Dim b As New List(Of String)
    b.Add("b1")
    b.Add("b2")
    b.Add("b3")
    b.Add("b4")
    b.Add("b5")


    Dim c As New List(Of String)
    c.Add("c1")
    c.Add("c2")
    c.Add("c3")
    c.Add("c3")

    z.Add(a)
    z.Add(b)
    z.Add(c)

    Dim maxItems = z.Max(Function(p) p.Count)
    MessageBox.Show(maxItems)`

2 个答案:

答案 0 :(得分:1)

如果您需要的只是最长列表的长度...

Private A As New List(Of String) From {"Mathew", "Mark", "Luke", "John"}
Private B As New List(Of String) From {"Apples", "Oranges", "Pears"}
Private C As New List(Of String) From {"Haddock", "Salmon"}
Private D As New List(Of String) From {"Great Dane", "Poodle", "Bulldog", "Spaniel", "Golden Retriever"}

Private Sub GetMaxListLength()
    Dim E() As Integer = {A.Count, B.Count, C.Count, D.Count}
    Dim max = E.Max
    MessageBox.Show(max.ToString)
End Sub

答案 1 :(得分:0)

玛丽和安德鲁的工作都很完美:

Dim z As New List(Of List(Of String))

    Dim a As New List(Of String)
    a.Add("a1")
    a.Add("a2")
    a.Add("a3")

    Dim b As New List(Of String)
    b.Add("b1")
    b.Add("b2")
    b.Add("b3")
    b.Add("b4")
    b.Add("b5")


    Dim c As New List(Of String)
    c.Add("c1")
    c.Add("c2")
    c.Add("c3")
    c.Add("c3")

    z.Add(a)
    z.Add(b)
    z.Add(c)

    Dim eb() As Integer = {a.Count, b.Count, c.Count}
    Dim max = eb.Max

    Dim maxItems = z.Max(Function(p) p.Count)
    MessageBox.Show(max)