2012-12-10 37 views
1

用戶輸入一系列的值到文本框:鐵血陣列,從列表填充它們<string>

Textbox 1: 10,9,8,7 

Textbox 2: 1,2,3,4 

ID,然後在想整理這兩個字符串,並填充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

TextBox.GetValue()和String.Split? – t3hn00b

+0

我不明白你的問題。哪一部分會導致你的問題?解析用戶輸入的字符串? – CodesInChaos

+0

所以你想爲每個文本框創建一個'List ',然後將它們轉換爲一個'string'數組,然後將它添加到你的鋸齒狀數組中?我沒有看到'List '的含義,那麼只需將該字符串解析爲一個數組,然後將其添加到鋸齒狀數組中。但也許我錯過了一些東西。 –

回答

2

從字符串創建列表:

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(','); 
+0

我曾嘗試過這一點,但我不斷收到關於不能從char []轉換爲字符串的錯誤。請參閱編輯我的原始問題。 –

+0

@HansRudel:你擁有的不是兩個字符串列表,其中的字符串可以排序,只有一個列表包含來自文本框的兩個字符串。將單個字符串轉換爲數組時,您將獲得一組字符。看看我上面添加的代碼。 – Guffa

+0

是的,我設法讓它工作。我將你的標記和其他2個答案標記爲+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; 
+0

它使用來自文本框的原始數據,而不是OP已經創建和排序的列表。 – Guffa

2
string[][] Arr = new string[]{textBox1.Text, textBox2.Text} //<--or "tempString" 
        .Select(s => s.Split(',')) 
        .ToArray(); 
+0

Maaan!你認爲每個人都會得到你指定的東西嗎? – Sivaraman

+0

@Sivaraman但是assigment的左側'string [] [] Arr'意味着它產生的東西 –