list.ForEach(m=>m = new DateTime(date.Year,date.Month,date.Day,m.Hour,m.Minute,m.Second));
return list;
リストが満たされているが、日付があります適切な形式の日付であり、動作していません。どうして?
list.ForEach(m=>m = new DateTime(date.Year,date.Month,date.Day,m.Hour,m.Minute,m.Second));
return list;
リストが満たされているが、日付があります適切な形式の日付であり、動作していません。どうして?
m
で参照されるリスト内の項目は、ラムダ式内のm
への新しい割り当てによって変更されません。リストの項目を変更するのではなく、元の値の一時的なコピーを上書きするだけです。
リスト内の値を実際に変更するには、インデクサーを使用して伝統的なループを作成して内容を変更します。
for (int i = 0; i < list.Count; i++)
{
var m = list[i];
list[i] = new DateTime(date.Year, date.Month, date.Day, m.Hour, m.Minute, m.Second);
}
あなたは、元のリストの変化を観察する必要はありません、代わりに別のものを作る(あるいはを希望する)ことができるなら、あなたはコメントで提案に従い、新しいリストを生成するためのLINQを使用することができますあなたの変更と一緒に。
list = list.Select(m => DateTime(date.Year,date.Month,date.Day,m.Hour,m.Minute,m.Second))
.ToList();
ユースケースを最もよく満たすテクニックを使用してください。
...またはLINQを使用して新しいリストを作成してください。 –
私のクエストを読んで、実際に助けてくれたすべての人に感謝します。 – Zet
あなたのリストにもエントリがありますか? –
基本的なdebugbgingがありません。結果:情報なしの質問。ひとつだけ価値があります。 – TomTom
何を反復してリストに追加しますか?現時点では、日付のリストを繰り返して、その日付を日付に変換し、それをリストの現在の項目として設定しているように見えますが、意味がありません。 – Draken