Есть List< Func< string>> нужно вызвать List.RemoveAll().Туда нужно передать Predicate< T>. нужно удалить только определнные функции. На MSDN Видел пример с Point, но попытка переделать аналогично под Func не получается. В чем проблема?
List
Predicate
private static bool ValidateFunc(Func
string test()
{
textBox.Text += " 2";
return "";
}
string test2()
{
textBox.Text += " 3";
return "";
}
Ошибка:Не удается неявно преобразовать тип "bool" в "System.Predicate< System.Func< string>>"
Если как на MSDN без параметров то ошибка такая: Нет перегруженного метода для "ValidateFunc", который соответствует делегату "Predicate< Func< string>>"
Ответ
Я предлагаю такой вариант:
Predicate
В частности, при использовании этого предиката в качестве аргумента метода _list.RemoveAll, из коллекции _list будут удалены все вхождения метода test
Либо так, если вместо ссылки на метод вы желаете использовать строку с именем метода:
Predicate
А назначение вашего метода ValidateFunc мне понять не удалось. Вы в нем сравниваете строку targetName с nameof(obj) (то есть со строковой константой "obj").
Комментариев нет:
Отправить комментарий