我有一个用四个字符串声明的二维char数组。
private static string string1 = "abcde";
private static string string2 = "ABCDE";
private static string string3 = "12345";
private static string string4 = "67890";
public string selectChars(bool includeOne, bool includeTwo, bool includeThree, bool includeFour)
{
char[][] charGroups = new char[][]
{
string1.ToCharArray(),
string2.ToCharArray(),
string3.ToCharArray(),
string4.ToCharArray()
};
}
我想声明并初始化数组,使得字符串add是基于四个bool标志的条件。例如,如果includeOne和includeThree为true,我想最终得到一个使用string1和string 3的charGroup [2] [5]。
(这是现有的代码,我不想从根本上改变代码的其余部分。如果我能有条件地声明该块中的数组,我就完成了。)
答案 0 :(得分:0)
我没有VM,但我认为这应该有用......
private static string string1 = "abcde";
private static string string2 = "ABCDE";
private static string string3 = "12345";
private static string string4 = "67890";
public string selectChars(bool includeOne, bool includeTwo, bool includeThree, bool includeFour)
{
char[][] charGroups = new char[][]
{
include1 ? string1.ToCharArray() : new char[0],
include3 ? string2.ToCharArray() : new char[0],
include3 ? string3.ToCharArray() : new char[0],
include4 ? string4.ToCharArray() : new char[0]
};
}
如果您想要做的就是将字符串作为字符数组包含它们各自的标志,那么我认为这样做会有所帮助。它使用条件运算符包含':'的左侧(如果includeX为true),否则包括右侧。
答案 1 :(得分:0)
你想要的方式就像一个列表,所以最好按列表实现它,然后按ToArray
返回一个数组:
public string selectChars(bool includeOne, bool includeTwo, bool includeThree, bool includeFour)
{
List<char[]> chars = new List<char[]>();
string string1 = "";
if (includeOne)
chars.Add(string1.ToCharArray());
if(includeTwo) ....
char[][] charGroups = chars.ToArray();
}
答案 2 :(得分:-2)
1)计算需要添加多少个字符串(有多少个标志为真)。
2)char[][] charGroups = new char[count][];
(可能需要char[][count]
;我的睡眠很少)
3)将索引初始化为0;对于每个标志,如果已设置,则将相应的char[]
放入该索引中,并递增索引。
但是为什么,为什么你要将String
分开到char[]
s? String
课程是你的朋友。它希望让你的生活更轻松。