改行で区切られた複数のデータ エントリを含むファイルがあり、各エントリには日付が含まれています。この日付を知っているので、これらのエントリを同等の日数に基づいてリストに入れたいと思いますが、現在の日付から 7 日以内の日付だけを気にします。次に、これらの 7 つのリストを含む最上位のリストを作成します。これらのリストには、その特定の日付を含むエントリが含まれています。
これが私がこれまでに持っているものです:
static void Main(string[] args)
{
List<List<string>> week = new List<List<string>>(7);
List<string> day = new List<string>();
FileInfo fi = new FileInfo("TestCases.txt");
StreamReader reader = fi.OpenText();
string line;
DateTime current = DateTime.Now;
int currentday = current.DayOfYear;
while ((line = reader.ReadLine()) != null)
{
string[] data = line.Split(',');
DateTime date = DateTime.Parse(data[0]);
int dateday = date.DayOfYear;
int diff = dateday - currentday;
if (diff < 0) diff += 365;
if (diff >= 0 && diff < 7)
{
day.Add(line);
}
week.Add(day);
}
Display(week);
Console.ReadKey();
}
そして私の表示機能:
static void Display(List<List<string>> list)
{
foreach (var sublist in list)
{
foreach (var value in sublist)
{
Console.Write(value);
Console.Write('\n');
}
Console.WriteLine();
}
}
これにより、適切なすべてのエントリ (次の 7 日以内に発生するエントリ) が出力されますが、最終的にすべてのエントリが 1 つのリストに追加され、同じリストが最上位のリストに 7 回連続して配置されます。
ここからどこに進むべきかについて大まかな考えはありますが、C# にはあまり詳しくなく、エラーが発生し続けており、Google はあまり役に立ちませんでした。
御時間ありがとうございます