Как загрузить тип из строки непосредственно в выражение linq в C #? - PullRequest
0 голосов
/ 06 апреля 2010

Это определение:

public static IEnumerable<TResult> OfType<TResult>(this IEnumerable source);

Как заменить TResult чем-то вроде:

Type.GetType("MyClass from assembly");

Ответы [ 2 ]

4 голосов
/ 06 апреля 2010

Вы не можете. Общие аргументы обеспечивают безопасность типов во время компиляции, в то время как Type.GetType использует отражение и неизвестна во время компиляции. Что именно вы пытаетесь достичь?

3 голосов
/ 06 апреля 2010

Вы не можете сделать это во время компиляции, если вы не знаете, какой тип используется, но вы можете написать собственный метод расширения для IEnumerable:

public static IEnumerable OfType(this IEnumerable source, Type t)
{
    foreach(object o in source)
    {
        if(t.IsAssignableFrom(o.GetType()))
            yield return o;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...