以下LINQ语句为特定属性查找具有重复值的项目,按count对它们进行分组,然后执行另一个分组以获取布尔返回值。如何优化此LINQ语句以提高速度?
我只是好奇它是如何改进的,它似乎有点浪费,因为这是对象模型验证库的一部分,我非常想尽快得到它。
执行速度是重中之重,但欢迎任何其他建议。
var grouped = from g2 in
(from i in item.ParentList
where _filter(i)
group i by propGetter(i) into g
select new { Count = g.Count(), Items = g })
group g2 by g2.Count == 1 into g3
select new { IsUnique = g3.Key, Items = g3 };
foreach (var g in grouped)
{
foreach (var grp in g.Items)
{
foreach (var itm in grp.Items)
{
if (g.IsUnique == false)
itm.AddPropertyError(_propertyName, (int)Validations.Unique, _message);
else
itm.RemovePropertyError(_propertyName, (int)Validations.Unique);
}
}
}
你有什么样的改进? – Oded
您面临的性能受到了什么影响? – V4Vendetta
对不起,编辑问题添加更多信息。我并没有真正感受到明显的性能下降,这对我来说有点浪费。无论如何,我都不是LINQ大师。 – Marlon