C#で2次元リストを作成しましたが、アイテムを印刷したいときに何も表示されませんでしたが、リストは空ではありません。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);
}
コードは、上記のmainメソッド内のリストlist
で入力文字列を受け取り、main_list
にリストを追加します。これはGetSymetricOrder
で処理され、Display
メソッドを使用して表示されます。
if(SymetricOrder != null){
Display(SymetricOrder);
}
実際にはなく、リスト項目のない、Display
メソッド内Console.WriteLine("SET"+i);
を印刷:行があるため、リストは実際には空ではありません。ここでは例として入力です:
4
AAA
AA
AAA
AA
3
BBB
BB
BBB
2
RERE
RE
0
、ここでは、印刷された結果である:いいえリスト項目が印刷されなかった
SET1
SET2
SET3
、ドン」理由を知りません。私が逃したものはありますか?、ありがとう。
ええ、私は単にループの始めに新しいリストをインスタンス化して作業します。ありがとう。 –