gpt4 book ai didi

c# - 如何将锯齿状数组转换为二维数组?

转载 作者:太空狗 更新时间:2023-10-29 23:15:15 28 4
gpt4 key购买 nike

我有一个文件 file.txt 包含以下内容:

6,73,6,71 
32,1,0,12
3,11,1,134
43,15,43,6
55,0,4,12

这段代码用于读取它并将其提供给锯齿状数组:

    string[][] arr = new string[5][];
string[] filelines = File.ReadAllLines("file.txt");
for (int i = 0; i < filelines.Length; i++)
{
arr[i] = filelines[i].Split(',').ToArray();
}

我如何做同样的事情,但使用二维数组?

最佳答案

假设您在开始读取文件之前知道二维数组的尺寸(或至少知道最大尺寸),您可以这样做:

string[,] arr = new string[5,4];
string[] filelines = File.ReadAllLines("file.txt");
for (int i = 0; i < filelines.Length; i++)
{
var parts = filelines[i].Split(','); // Note: no need for .ToArray()
for (int j = 0; j < parts.Length; j++)
{
arr[i, j] = parts[j];
}
}

如果您不知道维度,或者如果每行中的整数数量可能不同,您当前的代码将起作用,并且您可以在读完所有内容后使用一点 Linq 来转换数组:

string[] filelines = File.ReadAllLines("file.txt");
string[][] arr = new string[filelines.Length][];
for (int i = 0; i < filelines.Length; i++)
{
arr[i] = filelines[i].Split(','); // Note: no need for .ToArray()
}

// now convert
string[,] arr2 = new string[arr.Length, arr.Max(x => x.Length)];
for(var i = 0; i < arr.Length; i++)
{
for(var j = 0; j < arr[i].Length; j++)
{
arr2[i, j] = arr[i][j];
}
}

关于c# - 如何将锯齿状数组转换为二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20614694/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com