如何在一个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);
}
}
答案 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();