将所有linq语句的结果添加到一个大枚举中

时间:2013-09-21 20:12:54

标签: c# linq

如何在一个linq语句中执行此代码?

即。将所有linq语句的结果添加到一个大枚举

List<Type> alltypes = new List<Type>();
var assemblies = AppDomain.CurrentDomain.GetAssemblies();

foreach (var assembly in assemblies) 
{
    foreach (var type in assembly.GetTypes()) 
    {
    alltypes.Add(type);
    }
}

1 个答案:

答案 0 :(得分:3)

这听起来像你想要的:

var allTypes = AppDomain.CurrentDomain.GetAssemblies()
                        .SelectMany(assembly => assembly.GetTypes())
                        .ToList();

当一个“输入”项目(在这种情况下为一个程序集)用作多个其他项目(在这种情况下为类型)的源时,请使用SelectMany

如果您想在查询表达式中使用它:

var allTypes = (from assembly in AppDomain.CurrentDomain.GetAssemblies()
                from type in assembly.GetTypes()
                select type).ToList();