我有两个IEnumerable<T>
。
其中一个用默认值填充。这个序列将始终包含最多的元素。 另一个根据一些参数进行填充,可能包含较少的元素。 如果第二个序列中不存在某个元素,则需要使用第一个序列中相应元素进行填充。
下面的代码可以完成任务,但我觉得效率不高,并且需要将 IEnumerable
转换为 IList
或使用临时列表。
Person 实现了 IEquatable 接口。
IEnumerable<Person> fallBack = Repository.GetPersons();
IList<Person> translated = Repository.GetPersons(language).ToList();
foreach (Person person in fallBack)
{
if (!translated.Any(p=>p.equals(person)))
translated.add(person);
}
有什么建议吗?