c# - .First() 调用将如何影响性能?
问题描述
var result = users
.Where(x => x.IsActive)
.GroupBy(x => x.City)
.Select(x => new MyModel
{
Name = x.First().Name,
Age = x.First(),
CreatingDate = x.First().CreationDate,
HairColor = x.First().HairColor
})
.ToArray();
每个组将调用多少次 x.First() 方法?这是否意味着每个组将调用该方法 4 次。或者是否有优化使用 x.First() 方法获取元素一次,然后将其保存到变量并使用该变量检索字段?
解决方案
JonasH 回答了您的问题,但如果您想要“如何避免多次First
通话”问题的答案,请查看以下代码:
var result = users
.Where(x => x.IsActive)
.GroupBy(x => x.City)
.Select(x => new { Key = x.Key, First = x.First() })
.Select(x => new MyModel
{
Name = x.First.Name,
Age = x.First.Age, // I assume there's a typo here in your code
CreatingDate = x.First.CreationDate,
HairColor = x.First.HairColor
})
.ToArray();
推荐阅读
- google-sheets - 如何限制 gsheet 单元格范围可以采用的某些颜色?
- apache - URL 重写 - Prestashop
- ajax - 如何在 Chrome 开发人员工具中捕获特定的 AJAX (XHR) 事件?
- jquery - 如何使用 Ajax Jquery 并返回 View?
- sql - 在没有 Group by 的情况下执行聚合函数
- json - CSV 到 JSON,带有 Ruby 的换行符
- sql - 每行中 300 个非空列的计数
- project-reactor - reactor.core.Exceptions$OverflowException:由于缺少请求而无法交付价值
- javascript - 如何使用 Wistia API 为视频创建定时按钮
- mvvm - 如何在不可编辑脚本不应用绑定的视图元素中复制数据绑定函数?