将字符串输入分割成锯齿数组
本文关键字:数组 分割 字符串 输入 | 更新日期: 2023-09-27 17:52:38
string[] listKeys = key.Split(',');
string[] OrKeys;
string[][] AdvListKeys;
for (int i = 0; i < listKeys.Length; i++)
{
OrKeys = listKeys[i].Split('|');
for (int j = 0; j < OrKeys.Length; j++)
{
AdvListKeys = new string[i][j];
AdvListKeys[i][j] = OrKeys[i];
}
}
我试图将字符串"glu|com,inf|ina"
输入到C#
中的锯齿数组中,这样它的列将由listKeys
的长度定义(用逗号分隔)和由OrKeys
的长度定义的行(由'|'分隔),并且存储在锯齿数组中的值将是{"glu", "com"}
列1和{"inf", "ina"}
列2!目前我得到这个错误:
错误2无效的等级说明符:期望的','或']'有人能帮忙吗?
我将做以下更改:
在循环之外实例化你的2d数组
AdvListKeys = new string[listKeys.Length][];
因为AdvListKeys
基本上是一个数组的数组,你可以通过将OrKeys
中的值赋给AdvListKeys
中的元素来设置它的值
AdvListKeys[i] = OrKeys;
你不需要第二个循环来做这个(在j
上迭代的那个)
问题是不能同时实例化锯齿数组的两个维度。这是因为数组中的每个数组可以有不同的长度。
但是用Linq
更容易做到这一点string[][] AdvListKeys = key.Split(',')
.Select(o => o.Split('|'))
.ToArray();