c# - 将分隔字符串转换为二维数组

标签 c# arrays string

我有一个两位数字的网格,写为用换行符和空格分隔的字符串,例如:

string grid = "58 96 69 22 \n" +
              "87 54 21 36 \n" +
              "02 26 08 15 \n" +
              "88 09 12 45";

我想将其拆分为 4×4 数组,以便我可以通过类似 separatedGrid[i, j] 的方式访问它。我知道我可以使用 grid.Split(' ')分隔每行中的数字,但如何从中获取二维数组?

最佳答案

所以你想要的是将分隔的多行字符串转换为二维数组:

string grid = "58 96 69 22 \n" +
    "87 54 21 36 \n" +
    "02 26 08 15 \n" +
    "88 09 12 45";

var lines = grid.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries)
                .Select(x => x.Trim().Split(' ')).ToArray();

int numberOfRows = lines.Length;
int maxNumberOfColumns = lines.Max(x => x.Length);
string[,] separatedGrid = new string[numberOfRows, maxNumberOfColumns];

for (int i = 0; i < lines.Count(); i++)
{
    string[] values = lines.ElementAt(i);
    for (int j = 0; j < values.Length; j++)
    {
        separatedGrid.SetValue(values[j], i, j);
    }
}

关于c# - 将分隔字符串转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38544513/

相关文章:

c# - Linq Enumerable<T>.ElementAt => IEnumerable<T>

javascript - Angular2 从对象数组中获取值

javascript - 循环访问 JavaScript 对象数组并删除值

javascript - 如何使用 JavaScript 替换字符串中的所有点

c - 查找字符串中字符串分隔符的数量

c# - 带有 nhibernate/fluent 的枚举标志

c# - 关闭 GUI 时终止线程

c# - 如何在 Outlook 2013 中禁用特定存储的索引?

arrays - 循环中的数组修改

java - Java 中的 copyValueOf?