如何将 string[] 转换为 list<int>?

22

我怎样能将一个字符串数组转换为整数列表?(不使用我的自定义方法逐一转换)

从谷歌搜索中,我看到了名为ToList()和ConvertAll()的方法,但我无法打出它们,为什么会这样呢?

我尝试过:

new list<int>((int[])s.Split(','));

但是,我得到了错误提示:无法将字符串数组转换为整数数组 :(


你的字符串长什么样? - Gabe
可能是重复的问题,参见在一行中拆分字符串并转换为ToList<int>() - Pranav Singh
10个回答

43

这里涉及到一个两步处理过程。第一步是将字符串转换为整数,然后将数组转换为列表。如果您可以使用LINQ,最简单的方法是使用:

stringArray.Select(x => Int32.Parse(x)).ToList();

16
stringArray.Select(Int32.Parse).ToList(); 的翻译是:将字符串数组中的每个元素转换成整数后,再把它们放到一个新的列表里。 - BrokenGlass
2
如果有人想要加入TryParse来防止异常: 'int i; List<int> intList = stringArray.Split(',').Select(s => int.TryParse(s, out i) ? i : -1).ToList();` - red_dorian

19

从您的代码中获取提示:

var listOfInts = s.Split(',').Select(Int32.Parse).ToList();

1
var s = "1,2,3,4,5,6,7,8,9";
var result = s.Split(',').Select(Convert.ToInt32).ToList();

1

对于VB.NET,我必须在循环中完成它。

Dim myList As New List(Of Integer)
For Each item As String In s.Split(",")
    myList.Add(Val(item))
Next

也许可以通过一些内置函数解决,但我不想花太多时间。


1
使用以下代码:
var list = s.Select(Int32.Parse).ToList();

到目前为止最短的翻译 - Dmytro Zakharov

1
尝试使用
int x = 0; 

var intList= stringList.Where(str => int.TryParse(str, out x)).Select(str => x).ToList();

有一种更简单的方法:使用 Array.ConvertAll 方法。 - MB_18

1
public List<int > M1()
{
    string[] s =(file path));
    Array.Sort(s);
    var c = new List<int>();
    foreach(string x in s)
    {
        c.Add(Convert.ToInt32(x));
    }
    return c;
}

4
请添加一些描述。 - sDev

0
假设values是您的字符串列表:
int[] ints = new int[values.Count];

int counter = 0;
foreach (string s in values) {
    ints[counter++] = int.Parse(s);
}

不要把自己搞得太复杂 :)


0

试一下:

 var selectedEditionIds = input.SelectedEditionIds.Split(",").ToArray()
                        .Where(i => !string.IsNullOrWhiteSpace(i) 
                         && int.TryParse(i,out int validNumber))
                        .Select(x=>int.Parse(x)).ToList();

-1
你应该使用 Array.ConvertAll 方法。 Array.ConvertAll 可以将一个类型的数组转换为另一个类型的数组。
以下是代码:
string[] strArray = new string[] { "1", "2", "3" };
int[] intArray = Array.ConvertAll(strArray, int.Parse);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接