VB.Net Фильтр-массив, эквивалентный VB6 - PullRequest
1 голос
/ 25 марта 2011

Погуглил в течение часа и не могу найти ответ. Следующее удалит «глупый» и выведет «hello world»

Dim arr As Variant: arr = Array("hello", "stupid", "world")
Dim newArr As Variant: newArr = Filter(arr, "stupid", False)
Debug.Print Join(newArr, " ")

Что такое эквивалент VB.Net для фильтра? Любая помощь будет принята с благодарностью! Изменить: (Я ищу решение 2.0 NET Framework)

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

Возможно, что-то вроде этого (предположим VB 10):

Dim arr As String() = {"hello", "stupid", "world"}

Dim filteredArray = (from s in arr
                     Where s <> "stupid"
                     Select s).ToArray()

Альтернативой является использование Except (которое доступно в .Net 3.5):

Dim words As String() = {"hello", "stupid", "world"}
Dim excludedWords As String()  = {"stupid"}

Dim filteredArray = words.Except(excludedWords).ToArray()
0 голосов
/ 25 марта 2011

Для .NET 2.0 вы можете использовать метод Array.FindAll , например:

Dim arr As String() = New String() {"hello", "stupid", "world"}  
Dim newArr As String() = Array.FindAll(arr, AddressOf RemoveElements)

Используя этот предикат:

Private Shared Function RemoveElements(ByVal s As String) As Boolean
    Return Not s.Equals("stupid")
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...