我只找到了一种方法来完成相反的操作:从整数列表或数组创建逗号分隔的字符串,但是没有找到如何将像 string str = "1,2,3,4,5";
这样的输入转换为整数数组或列表的方法。
这是我的实现(受 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;
}
}
}
}
你认为这是一个好方法吗?还是有更简单的,甚至是内置的方法吗?
编辑:对不起,如果出现如"1,2,,,3"
或"###, 5,"
等无效输入,则该方法需要处理并跳过它们。
foreach
,使得你的代码变得不必要地复杂。你正在复制的帖子解决的是一个完全不同的问题。 - SLaks