Я нашел способ сделать это наоборот: создать строку с разделителями-запятыми из списка или массива int, но не о том, как преобразовать ввод, например string str = "1,2,3,4,5";
, в массив или список целых чисел.Преобразовать разделенную запятыми строку ints в массив int
Вот моя реализация (вдохновленный this post by Eric Lippert):
public static IEnumerable<int> StringToIntList(string str)
{
if (String.IsNullOrEmpty(str))
{
yield break;
}
var chunks = str.Split(',').AsEnumerable();
using (var rator = chunks.GetEnumerator())
{
while (rator.MoveNext())
{
int i = 0;
if (Int32.TryParse(rator.Current, out i))
{
yield return i;
}
else
{
continue;
}
}
}
}
Как вы думаете, это хороший подход или есть более простой, может быть, даже встроенный в пути?
EDIT: Извините за путаницу, но метод должен обрабатывать недопустимый ввод как "1,2,,,3"
или "###, 5,"
и т.д., пропуская его.
Вы напрасно усложнять код, не используя 'foreach'. Сообщение, которое вы копируете, решает _completely_ другую проблему. – SLaks