gpt4 book ai didi

c# - 如何优化此代码

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:58 26 4
gpt4 key购买 nike

var type = typeof(TInterface);
var types = AppDomain.CurrentDomain.GetAssemblies().ToList()
.SelectMany(s => s.GetTypes())
.Where(t => type.IsAssignableFrom(t));

这段代码比我希望的要慢。有人可以建议用 C# 编写此代码的更优化方法吗?

最佳答案

您正在迭代您已加载/引用的所有程序集中的所有类型。但是您想要的类型就是您的类型,因此您知道它不在任何系统程序集中。因此,例如,如果您的程序未安装在那里,您可以过滤掉全局程序集缓存中的程序集:

var type = typeof(TInterface);
var types = AppDomain.CurrentDomain.GetAssemblies().Where(a => !a.GlobalAssemblyCache)
.SelectMany(s => s.GetTypes())
.Where(t => type.IsAssignableFrom(t));

如果您的应用程序安装在 GAC 中,您可以使用其他过滤策略将程序集限制为您自己的程序集。

关于c# - 如何优化此代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6013305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com