C # Lambda: использование Event <T>() - PullRequest
1 голос
/ 23 декабря 2010

У меня есть ArrayList из FrameworkElements в переменной "selectedElementArray"

, и приведенный ниже код используется для выравнивания элементов управления сверху

    double top = 100;
    selectedElementArray.Cast<FrameworkElement>()
        .ToList()
        .ForEach(fe => Canvas.SetTop(fe, top));

, это работает нормально.* но мне нужно избегать FrameworkElement, скажем parentElement, который существует в «selectedElementArray»

selectedElementArray.Cast<FrameworkElement>()
       .ToList()
       .Except(parentElement)
       .ToList()
       .ForEach(fe => Canvas.SetTop(fe, top));

Я пытался использовать «Кроме».но выбрасывая некоторые исключения.

просьба помочь ....

Binil

Ответы [ 2 ]

3 голосов
/ 23 декабря 2010

Вам просто нужно предложение where.

selectedElementArray.Cast<FrameworkElement>()
   .Where(element => element != parentElement)
   .ToList()
   .ForEach(fe => Canvas.SetTop(fe, top));

Чтобы использовать except, вам необходимо передать IEnumerable:

selectedElementArray.Cast<FrameworkElement>()
   .Except(new FrameworkElement[]{ parentElement })
   .ToList()
   .ForEach(fe => Canvas.SetTop(fe, top));
3 голосов
/ 23 декабря 2010

Может быть, вы хотите что-то подобное?

selectedElementArray.Cast<FrameworkElement>()
       .Where(fe => fe != parentElement)
       .ToList()
       .ForEach(fe => Canvas.SetTop(fe, top));

Или, может быть:

foreach (var fe in selectedElementArray.Cast<FrameworkElement>()
                                       .Where(fe => fe != parentElement))
    Canvas.SetTop(fe, top);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...