統合する必要がある 2 つのリストがあります。リスト 1 には日付のみが含まれ、リスト 2 には時間要素も含まれる場合があります。
var List1 = new[] {
new ListType{ val = new DateTime(2012, 1, 1)},
new ListType{ val = new DateTime(2012, 1, 2)}
};
List2 = new[] { new ListType{ val = new DateTime(2012, 1, 1, 5, 0, 0)} };
FinalList = new[] {
new ListType{ val = new DateTime(2012, 1, 1, 5, 0, 0)},
new ListType{ val = new DateTime(2012, 1, 2)}
};
私がこれについて行っている方法は次のとおりです。
foreach (var l in List1) {
var match = List2.FirstOrDefault(q => q.val.Date == l.val);
if (match == null) continue;
l.val = match.val;
}
List1 を反復処理し、FirstOrDefault を使用してから val を再割り当てするよりも良い方法はありますか? それは機能するので、Linq がよりエレガントな方法を持っている場合、これは単なる好奇心です (つまり、明らかな何かが欠けています)。
ありがとう