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
没有列表项被印,不要”不知道为什么。有什么我错过了?,谢谢。
是的,我只是简单地在循环的开始实例化新列表,并工作。谢谢。 –