1

ユーザーは一連の値をテキスト ボックスに入力します。

Textbox 1: 10,9,8,7

Textbox 2: 1,2,3,4

次に、これら 2 つの文字列を並べ替えて、List<string>. ソートしたら(その部分を行う方法はすでにわかっています)、次のように入力のギザギザの配列を作成したいと思います。

string[][] Arr = new string[2][];

Arr[0] = new string[] { "10", "9", "8", "7" };
Arr[1] = .....

ただし、値を手動で入力する代わりに、List<string>上記を使用したいと思います。

これは可能ですか (これまでのところ、私の試みはかなり惨めに失敗しています)? そうでない場合、誰かが可能な代替アプローチを提案できますか?

御時間ありがとうございます!

編集:答えに基づいて、私はそれを機能させました。私が並べ替えの意味を明確にしておらず、申し訳ありません。

List<string> tempString = new List<string>();
tempString.Add("10,9,8,7");
tempString.Add("1,2,3");

string[][] Arr = new string[2][];

for (int x = 0; x < 2; x++)
{
    string[] values = tempString[x].Split(',').ToArray();

    Arr[x] = values;
}
4

3 に答える 3

3

文字列からリストを作成します。

List<string> list1 = new List<string>(textbox1.Text.Split(','));
List<string> list2 = new List<string>(textbox2.Text.Split(','));

リストを並べ替える:

list1.Sort();
list2.Sort();

リストから配列を簡単に作成できるようになりました。

string[][] Arr = new string[2][];
Arr[0] = list1.ToArray();
Arr[1] = list2.ToArray();

別の順序で実行する場合、つまり最初に並べ替えてから分割する場合は、次のようになります。

List<string> list = new List<string>();
list.Add(textbox1.Text);
list.Add(textbox2.Text);
list.Sort();
string[][] Arr = new string[2][];
Arr[0] = list[0].split(',');
Arr[1] = list[1].split(',');
于 2012-12-10T13:36:17.100 に答える
3
Arr[0] = textBox1.Text.Split(',');
Arr[1] = textBox2.Text.Split(',');

編集リストの前処理が必要な場合は、次のように実行できます。

var array1 = textbox1.Text.Split(',').OrderBy(x => x).ToArray();
var array2 = textbox2.Text.Split(',').OrderBy(x => x).ToArray();
// extra processing here
string[][] Arr = new string[2][];
Arr[0] = array1;
Arr[1] = array2;
于 2012-12-10T13:36:29.563 に答える
2
string[][] Arr = new string[]{textBox1.Text, textBox2.Text} //<--or "tempString"
                    .Select(s => s.Split(','))
                    .ToArray();
于 2012-12-10T13:37:29.697 に答える