var inventionIds = new List<int>();
List<ProductRemunerationReportingPeriodLink> productRemunerationReportingList =
GetAllProductRemunerationReportingPeriodByProductId(productId);
foreach (var rptPeriod in productRemunerationReportingList)
{
var inventionsList = rptPeriod.Inventions;
foreach (var link in inventionsList)
{
int id = link.Invention.InventionId;
inventionIds.Add(id);
}
}
return inventionIds;
我想最小化两个 for 循环任何人请为此提供一个 nhibernate linq 查询。非常感谢任何帮助。
最佳答案
使用原始变量名称:
var inventionIds =
productRemunerationReportingList.SelectMany(rptPeriod => rptPeriod.Inventions)
.Select(ProductRemunerationReportingPeriodInvention => ProductRemunerationReportingPeriodInvention.Invention.InventionId)
.ToList();
与更好的命名相同:
var inventionIds = GetAllProductRemunerationReportingPeriodByProductId(productId)
.SelectMany(p => p.Inventions)
.Select(i => i.Invention.InventionId)
.ToList();
提示:变量名的长度应与变量使用的范围相对应。全局可访问的变量应该有漂亮的描述性名称。在短作用域(如 lambda)中使用的变量应该具有非常短的名称。
关于c# - 将 foreach 循环减少为 linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22532563/