我有一个有数字的字符串
string sNumbers = "1,2,3,4,5";
Run Code Online (Sandbox Code Playgroud)
我可以将它拆分然后转换为 List<int>
sNumbers.Split( new[] { ',' } ).ToList<int>();
Run Code Online (Sandbox Code Playgroud)
如何将字符串数组转换为整数列表?这样我就可以转换string[]为IEnumerable
我只找到了一种相反的方法:从int列表或数组创建一个逗号分隔的字符串,但不是如何将输入转换string str = "1,2,3,4,5";为数组或int列表.
这是我的实现(灵感来自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;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
你认为这是一个好方法还是更简单,甚至可能是内置方式?
编辑:对不起任何混乱,但该方法需要处理等无效的输入"1,2,,,3"或"###, 5,"通过跳过它等等.