VB.NET - альтернатива Array.Contains? - PullRequest
       2

VB.NET - альтернатива Array.Contains?

3 голосов
/ 15 октября 2011

Раньше я использовал это на .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'.

Как мне получить приведенные выше коды (.Contains), не переходя с 2.0 на 3.0? Есть альтернативы?

Ответы [ 2 ]

7 голосов
/ 15 октября 2011

Вам придется переписать ваш код, например ...

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

Инициализатор коллекции зависит от компилятора, но не от целевой платформы, поэтому это должно работать.

Редактировать: исправлен неправильный метод / условие Во время работы над этим меня прервал утечка, и я не хотел публиковать его, пока не убедился, что он работает.

http://ideone.com/i84QX

2 голосов
/ 15 октября 2011

Этого можно добиться с помощью Существует или Найти

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...