Есть ли эквивалент String.Split, который возвращает общий список?

Я хотел бы сделать что-то вроде этого:

Dim Foo as String = "a,b,c,d,e"
Dim Boo as List(of String) = Foo.Split(","c)

Конечно, Foo.Split возвращает одномерный массив String, а не общий List. Есть ли способ сделать это без повторения через массив, чтобы превратить его в общий List?

Ответ 1

Если вы не хотите использовать LINQ, вы можете сделать:

Dim foo As String = "a,b,c,d,e"
Dim boo As New List(Of String)(foo.Split(","c))

Ответ 2

Вы можете использовать конструктор List.

String foo = "a,b,c,d,e";
List<String> boo = new List<String>(foo.Split(","));

Ответ 3

Вам действительно нужен List <T> или IList <T> do? Поскольку string [] уже реализует последнее... просто еще одна причина, по которой стоит программировать интерфейсы, где вы можете. (Может быть, в этом случае вы действительно не можете, по общему признанию.)

Ответ 4

Самый простой метод, вероятно, будет методом AddRange.

Dim Foo as String = "a,b,c,d,e"
Dim Boo as List(of String)

Boo.AddRange(Foo.Split(","c))

Ответ 5

Если вы используете Linq, вы можете использовать метод расширения ToList()

Dim strings As List<string> = string_variable.Split().ToList<string>();

Ответ 6

Вот как я это делаю... так как split ищет массив char Я снимаю первое значение в моей строке.

var values = labels.Split(" "[0]).ToList<string>();

Ответ 7

Чтобы ответить на этот вопрос, Ive нашел следующее очень полезным:

Return New List(Of String)(IO.File.ReadAllLines(sFileName))