2010-12-11 9 views
0

私は4つの文字列で宣言された2次元のchar配列を持っています。条件付きの配列を2次元の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() 
    }; 
} 

私は、文字列の追加は、4つのブールフラグに基づいて条件付きであるように、配列を宣言し、初期化したいです。たとえば、includeOneとincludeThreeがtrueの場合、string1とstring3を使用しているcharGroup [2] [5]にしたいとします。

これは既存のコードで、ブロックの配列を条件付きで宣言できれば完了です)

+0

あなたがサンプルで自分の問題を説明するだろう。 –

+0

私は私の説明にもう少し肉を加えました。希望で十分です。 – alphadogg

答えて

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

-2

1)追加する必要がある文字列の数をカウントします(いくつのフラグが真であるかをカウントします)。

2)char[][] charGroups = new char[count][];char[][count]する必要があるかもしれません。私は0のインデックスINIT)

3)非常に少ない睡眠で動作しています。各フラグについて、設定されている場合は、該当するchar[]をそのインデックスに入れ、インデックスを増分します。

なぜ、どうしてStringchar[]に分けていますか? 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] 
    }; 
} 

あなたがしたいすべてがそれぞれのフラグが設定されている場合は、文字列として文字列が含まれている場合Iこれはトリックを行うと思います。条件演算子を使用して ':'の左側を含める(includeXがtrueの場合)。そうでない場合は右側を含める。

+0

空の配列を追加しますか? IOW、charGroup配列には4つのジグザグ配列がありますが、そのうちのいくつかは長さゼロの配列か、正確な配列数ですか? – alphadogg