gpt4 book ai didi

c# - 在 linq 查询中设置和使用值

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

我正在像这样过滤 PropertyInfo 列表:

foreach (PropertyInfo propertyInfo in 
ClassUtils.GetProperties(patternType).
Where(pi => pi.GetCustomAttribute<TemplateParamAttribute>() != null).
OrderBy(pi1 => pi1.GetCustomAttribute<TemplateParamAttribute>().Order))
{
TemplateParamAttribute attr = propertyInfo.GetCustomAttribute<TemplateParamAttribute>();
...

这工作正常,但我对每次迭代中的 3 个 GetCustomAttribute 调用不满意。有没有办法减少 GetCustomAttribute 调用的次数(并且仍然使用 linq)?

最佳答案

Is there a way to reduce number of GetCustomAttribute calls (and still use linq)?

绝对 - 尽早进行预测。为了可读性,我会在 foreach 循环之前声明的查询中执行此操作:

var query = from property in ClassUtils.GetProperties(patternType)
let attribute = property.GetCustomAttribute<TemplateParamAttribute>()
where attribute != null
orderby attribute.Order
select new { property, attribute };

foreach (var result in query)
{
// Use result.attribute and result.property
}

关于c# - 在 linq 查询中设置和使用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14318765/

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