То, что было сказано выше, верно. Вот лишь небольшое дополнение для некоторых особых случаев :
Если вам нужно объединить, например, два списка и , если вам нужна полная скорость, рассмотрите возможность использования yield . Конечно, это намного менее гибко и удобно, чем Union или Concat в Linq. Поэтому это имеет смысл только в особых случаях.
Это свойство, например, будет предоставлять то же самое, что List1.Concat (List2)
public IEnumerable<MyObject> AllObjects
{
get
{
foreach (MyObject o1 in List1)
yield return o1;
foreach (MyObject o2 in List2)
yield return o2;
}
}