【发布时间】:2009-11-19 14:19:34
【问题描述】:
我只找到了一种相反的方法:从 int 列表或数组创建一个逗号分隔的字符串,但没有关于如何将 string str = "1,2,3,4,5"; 之类的输入转换为数组或 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;
}
}
}
}
您认为这是一个好方法还是有更简单,甚至内置的方法?
编辑:抱歉有任何混淆,但该方法需要通过跳过处理无效输入,如 "1,2,,,3" 或 "###, 5," 等。
【问题讨论】:
-
不使用
foreach会使代码变得不必要地复杂化。您复制的帖子正在解决一个完全不同的问题。
标签: c#