Вы можете использовать оператор LINQ Union
, чтобы объединить две коллекции Canvas.Children
в одну:
for (UIElement child in canvasOne.Children.Cast<UIElement>()
.Union
(canvasTwo.Children.Cast<UIElement>()))
{
...
}
Обратите внимание на следующее:
Кодпоказанный фактически не создает новую, изменчивую коллекцию, которую вы можете изменить;он просто устанавливает IEnumerable<UIElement>
так, что вы можете перебирать элементы обеих коллекций за один раз.То есть будут доступны две существующие коллекции, а не новая.
Оператор Cast<UIElement>
необходим, поскольку Canvas.Children
не реализует IEnumerable<T>
, а только IEnumerable
.
Вам нужно сослаться на сборку System.Core.dll
в вашем проекте и импортировать пространство имен System.Linq
в файл кода, чтобы это работало.