1
我在C#中創建了二維列表,當我想打印項目時,它沒有顯示任何內容,但列表不是空的。C# - 2維列表不能打印
public static List<List<string>> GetSymetricOrder(List<List<string>> main_list){
List<List<string>> new_main_list = new List<List<string>>();
List<string> list = new List<string>();
for(int i=0;i<main_list.Count;i++){
for(int j=0;j<main_list[i].Count;j+=2){
list.Add(main_list[i][j]);
}
if(main_list[i].Count % 2 == 0){
for(int k = main_list[i].Count-1;k>=0;k-=2){
list.Add(main_list[i][k]);
}
}else{
for(int l = main_list[i].Count-2;l>=0;l-=2){
list.Add(main_list[i][l]);
}
}
new_main_list.Add(list);
list.Clear();
}
return new_main_list;
}
public static void Display(List<List<string>> new_main_list){
int i = 1;
foreach(var list in new_main_list){
Console.WriteLine("SET"+i);
foreach(var s in list){
Console.WriteLine(s);
}
i++;
}
}
public static void Main(string[] args)
{
int num;
List<List<string>> main_list = new List<List<string>>();
List<string> list = new List<string>();
while((num = int.Parse(Console.ReadLine()))!=0){
for(int i=0;i<num;i++){
string input = Console.ReadLine();
list.Add(input);
}
main_list.Add(list);
list.Clear();
}
List<List<string>> SymetricOrder = GetSymetricOrder(main_list);
if(SymetricOrder != null){
Display(SymetricOrder);
}
上述代碼接收在主方法列表list
輸入串與加至main_list
。這將在GetSymetricOrder
中處理,並使用Display
方法顯示。該名單實際上不是空的,因爲該行:
if(SymetricOrder != null){
Display(SymetricOrder);
}
實際打印Console.WriteLine("SET"+i);
內Display
方法,但沒有列表項。這裏的例子輸入:
4
AAA
AA
AAA
AA
3
BBB
BB
BBB
2
RERE
RE
0
,這裏是打印結果:
SET1
SET2
SET3
沒有列表項被印,不要」不知道爲什麼。有什麼我錯過了?,謝謝。
是的,我只是簡單地在循環的開始實例化新列表,並工作。謝謝。 –