用户在文本框中输入一系列值:
Textbox 1: 10,9,8,7
Textbox 2: 1,2,3,4
我喜欢对这两个字符串进行排序并填充List<string>
。一旦排序(已经弄清楚如何做这个部分),id喜欢创建一个像这样的输入的锯齿状数组:
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;
}
答案 0 :(得分: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(',');
答案 1 :(得分: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;
答案 2 :(得分:2)
string[][] Arr = new string[]{textBox1.Text, textBox2.Text} //<--or "tempString"
.Select(s => s.Split(','))
.ToArray();