Перегрузка методом String.Split(char[],int)
позволяет достичь того, что вам нужно. Например:
string line = "a,b,c,d,e,f,g,h,i,j,k,l,m,n";
string[] fields = line.Split(new char[] { ',' }, 10);
Массив fields
будет содержать десять элементов. Первые девять элементов соответствуют первым девяти подстрокам line
, которые были разделены ','
символами, тогда как последний элемент будет соответствовать оставшейся подстроке (после девятого ','
вхождения).
Из MSDN (второй аргумент, передаваемый методу Split(char[], int)
- count
):
Если в этом экземпляре больше чем count
подстрок, первые count
минус 1 подстрока возвращаются в первых count
минус 1 элементе возвращаемого значения, а остальные символы в этом экземпляре возвращаются в последний элемент возвращаемого значения.
Таким образом, выполняя:
for (int i = 0; i < fields.Length; ++i)
Console.WriteLine(string.Format("fields[{0}]: \"{1}\"", i, fields[i]));
будет выводить:
fields[0]: "a"
fields[1]: "b"
fields[2]: "c"
fields[3]: "d"
fields[4]: "e"
fields[5]: "f"
fields[6]: "g"
fields[7]: "h"
fields[8]: "i"
fields[9]: "j,k,l,m,n"