【发布时间】:2021-02-25 08:43:28
【问题描述】:
我有一个分层对象(Result->userDataProfilePermissions->dataPermissions->Values->dataObjectValue)
我需要区分 dataObjectValue 这是一个字符串。
我已经编写了以下循环,它应该可以正常工作。
var businesses = new List<BusinessRbac>();
foreach (var udpp in result.userDataProfilePermissions)
{
foreach (var dp in udpp.dataPermissions)
{
foreach (var v in dp.values)
{
if (!businesses.Any(x => x.BusinessName == v.dataObjectValue))
businesses.Add(new BusinessRbac() { BusinessName = v.dataObjectValue, Regions = new List<RegionRbac>() });
}
}
}
当我将其转换为 LINQ 时,我得到以下代码
var businesses = (from udpp in result.userDataProfilePermissions
from dp in udpp.dataPermissions
from v in dp.values
where !businesses.Any(x => x.BusinessName == v.dataObjectValue)
select new BusinessRbac() { BusinessName = v.dataObjectValue, Regions = new List<RegionRbac>() }).ToList();
编译错误:
CS0841: Cannot user local variable 'businesses' before it is declared.
【问题讨论】:
-
看来你其实只是想要一个 groupby
标签: c# .net visual-studio linq