使用lambda表达式过滤列表

时间:2013-05-10 09:17:43

标签: c# .net-4.5

以下方法返回我们指定的命名空间中的所有System.Type类。 但是,我不想要所有,我希望能够只检索我想要的类型。说我想要类型INMIRegisterRepository。如何过滤以下列表?请帮忙。

public static List<Type> TypesInNameSpace(Assembly assembly, string nameSpace)
{
    return assembly
            .GetTypes()
            .Where(O => string.Equals(O.Namespace, nameSpace, StringComparison.Ordinal))
            .ToList();
}

2 个答案:

答案 0 :(得分:0)

var Item =  assembly
               .GetTypes()
               .FirstOrDefault(O => string.Equals(O.Namespace, 
                                       "INMIRegisterRepository",
                                        StringComparison.Ordinal));

或者如果您想访问返回的列表,那么:

var yourList = TypesInNameSpace(......

var Item = yourList.FirstOrDefault(O => string.Equals(O.Namespace, 
                                           "INMIRegisterRepository",
                                            StringComparison.Ordinal));

答案 1 :(得分:0)

只需使用Assembly.GetType

assembly.GetType("INMIRegisterRepository");

使用Lambda表达式可以:

assembly.GetTypes().Where(t => t.GetType() == typeof(INMIRegisterRepository))
相关问题