从 .Any() 查询中检索匹配项
Retrieving matched items from an .Any() query
所以我有以下代码:
var itemsGrouped = this.Errors.GroupBy(x => x.UniqueName).AsEnumerable();
var hasErrors = !itemsGrouped.Any((f) =>
{
var errorCount = f.ToArray()
.Where(x => x.ErrorCount.HasValue)
.Count(x => x.ErrorCount.Value > 0);
return errorCount > 2;
});
现在我想检索与 .Any() 查询匹配的单个项目。我如何才能只获得匹配的项目?
你不能直接使用Any()
函数(它只是return一个bool
),但是.Where()
函数会return一个过滤 IEnumerable<T>
也有 Any()
功能。
所以像这样:
var itemsGrouped = this.Errors.GroupBy(x => x.UniqueName).AsEnumerable();
var invalidItems = itemsGrouped.Where((f) =>
{
var errorCount = f.ToArray()
.Where(x => x.ErrorCount.HasValue)
.Count(x => x.ErrorCount.Value > 0);
return errorCount > 2;
});
var hasErrors = !invalidItems.Any();
//Do stuff with invalidItems
所以我有以下代码:
var itemsGrouped = this.Errors.GroupBy(x => x.UniqueName).AsEnumerable();
var hasErrors = !itemsGrouped.Any((f) =>
{
var errorCount = f.ToArray()
.Where(x => x.ErrorCount.HasValue)
.Count(x => x.ErrorCount.Value > 0);
return errorCount > 2;
});
现在我想检索与 .Any() 查询匹配的单个项目。我如何才能只获得匹配的项目?
你不能直接使用Any()
函数(它只是return一个bool
),但是.Where()
函数会return一个过滤 IEnumerable<T>
也有 Any()
功能。
所以像这样:
var itemsGrouped = this.Errors.GroupBy(x => x.UniqueName).AsEnumerable();
var invalidItems = itemsGrouped.Where((f) =>
{
var errorCount = f.ToArray()
.Where(x => x.ErrorCount.HasValue)
.Count(x => x.ErrorCount.Value > 0);
return errorCount > 2;
});
var hasErrors = !invalidItems.Any();
//Do stuff with invalidItems