0

4つの文字列で宣言された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()
   };
}

文字列addが4つのboolフラグに基づいて条件付きになるように、配列を宣言して初期化します。たとえば、includeOneとincludeThreeがtrueの場合、文字列1と文字列3を使用したcharGroup[2][5]になります。

(これは、残りのコードを根本的に変更したくない既存のコードです。そのブロックで配列を条件付きで宣言できれば、完了です。)

4

3 に答える 3

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の場合)。それ以外の場合は右側をインクルードします。

于 2010-12-11T21:42:30.797 に答える
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();
}
于 2010-12-12T07:16:41.777 に答える
-2

1)追加する必要のある文字列の数(真のフラグの数)を数えます。

2)char[][] charGroups = new char[count][];(必要があるかもしれませんchar[][count];私はほとんど睡眠をとっていません)

3)インデックスを0に初期化します。フラグが設定されている場合は、フラグごとに適切なものchar[]をそのインデックスに入れ、インデックスをインクリメントします。

しかし、なぜ、ああ、なぜあなたはStringsをsに分解しているchar[]のですか?Stringクラスはあなたの友達です。それはあなたの人生を楽にしたいのです。

于 2010-12-11T16:29:24.910 に答える