VB.NET - Array.Contains的替代?

时间:2011-10-15 03:36:18

标签: vb.net arrays search

之前,我在.NET Framework 3.5上使用它,它运行良好:

    If (New String() {"ER", "PM", "EM", "OC"}).Contains(Session("Position")) Then
        'Some codes
    End If

现在我正在做一个使用.NET 2.0运行的项目,上面的代码无效,它给了我这个:

'Contains' is not a member of 'System.Array'.

如何在不从2.0迁移到3.0的情况下实现上述代码(.Contains)?任何替代品?

2 个答案:

答案 0 :(得分:7)

您必须重写代码,如此......

If (Array.IndexOf(New String() {"ER", "PM", "EM", "OC"}), Session("Position")>-1) Then
        'Some codes
End If

集合初始化程序取决于编译器,但不取决于目标框架,因此这应该有效。

编辑:修正了错误的方法/条件。当我正在研究这个问题时,我被一个漏水的水槽打断了,并且在我确认它有效之前不打算发布它。

http://ideone.com/i84QX

答案 1 :(得分:2)

您可以使用ExistsFind

来实现这一目标
If Array.Exists(New String() {"ER", "PM", "EM", "OC"}, AddressOf FindExistance) Then
    'Some codes   
End If



Private Function FindExistance(ByVal s As String) As Boolean
    If String.Equals(s, Session("Position")) Then
        Return True
    Else
        Return False
    End If
End Function