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列为@MappedSuperclass
public abstract class Record {
@EmbeddedId
private RecordPk id;
@MapsId("headerPk")
@ManyToOne
@JoinColumns({
@JoinColumn(name="FK_TRANSMISSION_ID", referencedColumnName="FK_TRANSMISSION_ID"),
@JoinColumn(name="MAILBOX_ID", referencedColumnName="MAILBOX_ID"),
@JoinColumn(name="TRANSMISSION_TIME", referencedColumnName="TRANSMISSION_TIME")
})
private VoucherHeader header;
....
....
}
!
目前我收到此错误:
错误2无效的排名说明符:预期','或']' 有人可以帮忙吗?
答案 0 :(得分:1)
我会做出以下更改:
在循环之外实例化你的二维数组
AdvListKeys = new string[listKeys.Length][];
由于AdvListKeys
基本上是一个数组数组,您可以通过将OrKeys
中的值分配给AdvListKeys
AdvListKeys[i] = OrKeys;
你不需要第二个循环来执行此操作(迭代j
的那个)
答案 1 :(得分:0)
问题是您无法同时实例化锯齿状阵列的两个维度。那是因为数组中的每个数组都可以有不同的长度。
但使用Linq
更容易做到这一点string[][] AdvListKeys = key.Split(',')
.Select(o => o.Split('|'))
.ToArray();