Я видел этот вопрос , который спрашивает, учитывая строку "Смит; Роджерс; МакКалн", как вы можете создать коллекцию. Ответом было использование String.Split.
Если у нас нет встроенного Split (), что вы делаете вместо этого?
Обновление:
Я признаю, что написать функцию разбиения довольно просто. Ниже то, что я бы написал. Переберите строку, используя IndexOf, и извлеките, используя Substring.
string s = "smith;rodgers;McCalne";
string seperator = ";";
int currentPosition = 0;
int lastPosition = 0;
List<string> values = new List<string>();
do
{
currentPosition = s.IndexOf(seperator, currentPosition + 1);
if (currentPosition == -1)
currentPosition = s.Length;
values.Add(s.Substring(lastPosition, currentPosition - lastPosition));
lastPosition = currentPosition+1;
} while (currentPosition < s.Length);
Я взглянул на реализацию SSCLI и она похожа на описанную выше, за исключением того, что она обрабатывает больше случаев использования и использует небезопасный метод для определения индексов разделителей перед выполнением извлечения подстроки.
Другие предложили следующее.
- Метод расширения, использующий блок итератора
- Предложение Regex (без реализации)
- Линк Агрегатный метод
Это оно?