私は、時系列のcsvファイルをソートしたい、これが私のコードです:Foreachループが正しく出力されませんか?
しかし、それは年代順にファイルを並べ替えていないだけでなく、dueDate
のための色も同様に正確に表示されていません。 yellow
のみが表示されています。
私はforeach
ループについてよく分かりませんし、ラムダには新しく、List<T>
とLINQです。
EDIT#1:
私は以下のソリューションのいくつかのようなfor
ループの外foreach
ループを配置しようとしたが、bgColour
その後動作していないようでした。
コードの下のセットは、私が実行したいものの続きです:
のでfor (int i = 0; i < line.Length; i++)
{
string[] col = line[i].Split(new string[] { "," }, StringSplitOptions.None);
... (All the array and foreach codes from above...)
if (col[1] == "Open")
{
if (col[9] == "DEFAULT")
{
sb1.AppendLine(new1 + bgColour + new2 + bgColour + new3);
Label1.Text = sb1.ToString();
}
}
}
、右、私はこれについてはよく分からないけど、bgColour
は、AppendLine
前でなければならないであろうか? AppendLine
はfor
ループ内にあります。このように私はどうすれば回避できますか?
EDIT#2:thisのようないくつかの情報源に基づいて
for (int i = 0; i < line.Length; i++)
{
string[] col = line[i].Split(new string[] { "," }, StringSplitOptions.None);
string[] dates = col[7].ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
Array.Sort(dates); // I know there's a problem here, please see below.
foreach (string date in dates)
{
DateTime dueDate = DateTime.ParseExact(date, "dd/MM/yyyy", null);
if (dueDate == DateTime.Today)
{
// if due date is today, blue
bgColour = "40FFFF";
}
else if (dueDate > DateTime.Today)
{
// if due date is not today yet, white
bgColour = "FFFFFF";
}
else
{
// if due date has passed, yellow
bgColour = "FFFF40";
}
}
if (col[1] == "Open")
{
if (col[9] == "DEFAULT")
{
sb1.AppendLine(new1 + bgColour + new2 + bgColour + new3);
Label1.Text = sb1.ToString();
}
}
}
が、それはArray.Sort()
だけで動作すると述べている:
私はこのコードのセットで動作するようにbgColour
のための別の方法を見つけました良いDateTime
配列なので、私はそれをテストすることにしましたが、私のコードではうまくいかなかったのです。ただし、今回はbgColour
が導入されています。
私は私のforeach
ループはケースのように想定されていないfor
ループでまだであることを知っています。誰かが私にforeach
のループアウトを手伝ってもらえるといいですね。提供される説明も素晴らしいでしょう。
なぜforループでforeachループを使用しますか? for foreachループではありませんか? –
そして、あなたは 'bgColour'で何をするつもりですか?これは 'CSVEntry'のプロパティに割り当てられますか? –
@ romain-aga申し訳ありませんが、私はそれについて知りませんでした。 – user6234613