1

用户在文本框中输入一系列值:

Textbox 1: 10,9,8,7

Textbox 2: 1,2,3,4

然后我想对这两个字符串进行排序并填充一个List<string>. 一旦排序(已经想出如何做那部分),我喜欢创建一个输入的锯齿状数组,如下所示:

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

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

但不是手动输入值,id 喜欢使用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 回答