Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Поиск методов в списке C#

Есть список List с записанными в него методами. Надо выполнить поиск по списку(по свойству MethodInfo.Name), чтобы потом получить нужный MethodInfo и запустить его через Invoke;


Ответ

var consoleType = typeof(Console); var methods = new List(consoleType.GetMethods()); string wantedMethodName = "WriteLine";
1) Можно сделать простой перебор списка и забрать первый элемент, удовлетворяющий условию:
MethodInfo findedMethod; foreach (var method in methods) { if (method.Name == wantedMethodName) { findedMethod = method; break; } }
2) Или воспользоваться методами LINQ, что сделает код проще и симпатичнее:
var findedMethod = methods.FirstOrDefault(m => m.Name == wantedMethodName);
или
var findedMethod = methods.Find(m => m.Name == wantedMethodName);
Об отличиях FirstOrDefault и Find можете прочесть здесь

Комментариев нет:

Отправить комментарий