Я нашел способ сделать это наоборот: создать строку, разделенную запятыми, из списка или массива int, но не о том, как преобразовать входные данные, такие как string str = "1,2,3,4,5";
, в массив или список int.
Вот моя реализация (вдохновленная этим сообщением Эриком Липпертом):
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;
}
}
}
}
Считаете ли вы, что это хороший подход или есть более простой, возможно, даже встроенный способ?
РЕДАКТИРОВАТЬ: Извините за любую путаницу, но метод должен обрабатывать недопустимый ввод типа "1,2,,,3"
или "###, 5,"
и т.д., пропустив его.