2010-12-11 67 views
0

我有一个用四个字符串声明的二维char数组。有条件地在二维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都是真的,我想用charGroup [2] [5]结束使用string1和string 3.

(这是现有的代码,我不想从根本上改变如果我可以有条件地声明该块中的数组,我就完成了。)

+0

你的样品解释你的问题。 – 2010-12-11 17:02:15

+0

我在我的描述中加了一点肉。希望它够了。 – alphadogg 2010-12-11 21:13:49

回答

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(); 
} 
+0

这是有效的。我想我必须去一个更加有活力的结构,但是在我忽略了一个更简单的方法的情况下提问。 – alphadogg 2010-12-12 14:23:04

-2

1)计算需要添加多少个字符串(多少个标记为真)。

2)char[][] charGroups = new char[count][];(可能需要char[][count];我初始化索引以0上睡得很少)

3)操作;对于每个标志,如果已设置,则将相应的char[]放入该索引,然后递增索引。

但是为什么哦,你为什么要把String分成char[]String班是你的朋友。它想让你的生活更轻松。

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为真),否则包含右侧。

+0

会添加空阵列吗? IOW,charGroup数组中会有四个锯齿形数组,其中一些可能是长度为零的数组,或者是数组的精确数目? – alphadogg 2010-12-12 02:38:49