Есть список List<MethodInfo> с записанными в него методами. Надо выполнить поиск по списку(по свойству MethodInfo.Name), чтобы потом получить нужный MethodInfo и запустить его через Invoke;
var consoleType = typeof(Console);
var methods = new List<MethodInfo>(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 можете прочесть здесь.
private MethodInfo FindMethodInfo(string name)
{
return MethodInfoList?.Where(r => r.Name == name).FirstOrDefault();
}
Поправил, как подсказал @teanЫЧ
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники