相关疑难解决方法(0)

拆分字符串,在一行中转换ToList <int>()

我有一个有数字的字符串

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

c# split list

175
推荐指数
6
解决办法
16万
查看次数

将逗号分隔的int字符串转换为int数组

我只找到了一种相反的方法:从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,"通过跳过它等等.

c#

54
推荐指数
6
解决办法
9万
查看次数

标签 统计

c# ×2

list ×1

split ×1