我有 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 有更优雅的方式(即我遗漏了一些明显的东西),这只是一种好奇心。
谢谢