Я бы добавил это как комментарий к отличному ответу Мехрдада, но не думаю, что он правильно отформатировал бы ...
Глядя на глубоко вложенные выражения LINQ, у меня болит мозг (вероятно, потому, что я новичок в LINQ).
Вот моя попытка переформатировать его более читабельным способом.
var t = typeof(DateTime);
string[] validMethods = { "ToString" };
var parameters = new[] { typeof(string) };
return t.GetMethods()
.Where
(
a => validMethods.Contains(a.Name)
&&
a.GetParameters()
.Select(p => p.ParameterType)
.SequenceEqual(parameters)
)
.ToArray();
Все еще причиняет боль моему мозгу, но не так сильно.