Метод расширения для UIElementCollection

266
17 декабря 2017, 07:57

Есть метод расширения:

static public List<TResult> ToList<TResult>(this UIElementCollection c, TResult result) where TResult : class
{
    var l = new List<TResult>();
    foreach (var item in c)
    {
        l.Add((TResult)item);
    }
    return l;
}

Но проблема появляется когда вызываю:

var l = stack.Children.ToList(CheckBox);

stack это StackPanel. где все его элементы CheckBox.

Пишет что CheckBox тип, который не допустим в данном контексте.

Как правильно реализовать?

Answer 1

Зачем вам вообще второй параметр?

static public List<TResult> ToList<TResult>(this UIElementCollection c) 
     where TResult : UIElement
{
    var l = new List<TResult>();
    foreach (var item in c)
    {
        l.Add((TResult)item);
    }
    return l;
}

Использование

var l = stack.Children.ToList<CheckBox>();

По большому счету это то же самое, что

var l2 = stack.Children.Cast<CheckBox>().ToList();
READ ALSO
Отправка параметров JSON на веб-сервис из C#

Отправка параметров JSON на веб-сервис из C#

Мне нужно из C# отправить сделать то, что делается через CURL таким образом:

211
Как преобразовать ASCII в Unicode?

Как преобразовать ASCII в Unicode?

Нашел на просторах интернета сей сниппетУ меня почему то отображаются вопросики в результатах

296