如何在arraylist中找到值?

时间:2014-06-12 07:51:28

标签: vb.net arraylist

我有一个名为arrdirectory的arraylist。查询数据库时,此arraylist包含一个结构。

arrDirectory = New ArrayList
While rdr.Read
    With udt_mydir
        If Not IsDBNull("dirno") Then
            .strdirno = (rdr("dirno"))
        Else
            .strdirno = "N/A"
        End If
        If Not IsDBNull("dirname") Then
            .strdirname = (rdr("dirname"))
        Else
            .strdirname = "N/A"
        End If
        If Not IsDBNull(rdr("dir_image")) Then
            .arrImg = rdr("dir_image")
        Else
            .arrImg = Nothing
        End If
        If Not IsDBNull(rdr("dir_logo")) Then
            .arrLogo = rdr("dir_logo")
        Else
            .arrLogo = Nothing
        End If
    End With
    arrDirectory.Add(udt_mydir)
End While

如何从my string等于udt_mydir.strdirname的arraylist中找到,以便我可以获得整个数据strdirnoarrImgarrLogo?< / p>

1 个答案:

答案 0 :(得分:0)

为什么要使用ArrayList开头?使用其通用版本List<>,这样您就不需要装箱/取消装箱来访问其商品。

无论如何,假设您使用的是.NET 3.5,使用LINQ的IEnumerableWhere()Single()来查找SingleOrDefault()中的元素非常简单。

我不会费心去弄清楚VB的语法是什么,但是这里是C#的外观,假设你真的想坚持那个可怕的ArrayList:

var x = arrDirectory.Cast<YourType>().SingleOrDefault(item => item.strdirname == "my string");