作为更大程序的一部分,我需要将带有逗号分隔值的字符串列表转换为Int列表,其中信息必须以特定方式排列。换句话说,我有这个字符串列表A:
**ListA(string)**
[0] "4, 0, 7, -1,"
[1] "0, 1, 7, -1,"
[2] "7, 1, 6, -1,"
我想转换成这个int ListB:
**List B(int)**
[0] {int[4]}
[0] 4
[1] 0
[2] 7
[3] -1
[1] {int[4]}
[0] 0
[1] 1
[2] 7
[3] -1
[2] {int[4]}
[0] 7
[1] 1
[2] 6
[3] -1
我一直试图弄清楚如何做到这一点,但我没有设法做到这一点。
如果你能帮助我,我将不胜感激!
非常感谢!
答案 0 :(得分:1)
尝试:
var listB = new List<string>() { "4, 0, 7, -1,", "0, 1, 7, -1,", "7, 1, 6, -1," }
.Select(
x => x.TrimEnd(',') //removing last ","
.Split(',') //splitting string into array by ","
.Select(int.Parse) //parsing string to int
.ToList()
).ToList();
答案 1 :(得分:0)
可以使用LINQ
轻松完成var a = new List<string> {"1, 2, 3, 4", "5, 6, 7, 8"};
List<int[]> b = a.Select(s => s.Split(new [] {", "}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray()).ToList();
答案 2 :(得分:0)
使用LINQ更简洁,但这是另一种方法,你可以完成相同的事情,只是分开更多。
var stringList = new List<string>() { "4, 0, 7, -1,", "0, 1, 7, -1,", "7, 1, 6, -1," };
var intList = new List<int[]>();
foreach(var str in stringList)
{
// Call Trim(',') to remove the trailing commas in your strings
// Use Split(',') to split string into an array
var splitStringArray = str.Trim(',').Split(',');
// Use Parse() to convert the strings as integers and put them into a new int array
var intArray = new int[]
{
int.Parse(splitStringArray[0])
,int.Parse(splitStringArray[1])
,int.Parse(splitStringArray[2])
,int.Parse(splitStringArray[3])
};
intList.Add(intArray);
}