>>967です
たくさんのレスがついていてビックリしています
書いていて思ったのは>>977さんがいうように各メソッドの間に改行を入れればまだ読みやすいと思ったのと、
Orderのプロパティが多いようだとどんどん読みづらくなっていくな、と思いました

foreachで書いたのはこんな感じですが、よりいい方法があれば知りたいです
var allItem = new List<Order>(order1);
foreach (var o in order2)
{
var duplicate = allItem.FirstOrDefault(x => x.ItemCode == o.ItemCode);

if (duplicate is null)
allItem.Add(o);
else
duplicate.Quantity += o.Quantity;
}