如何总结一个类列表的属性?
long totalSize = 0;
foreach (ManifestEntry fileEntry in moduleManifest)
{
totalSize += fileEntry.Size;
}
在ruby中我们可以做一个枚举器,它返回一个数组并简单地总结一下。
totalSize = moduleManifest.map{&:Size}.sum
我在c#中看到了一些调查员,但我没理解这些。 什么是正确的语法来达到相同的结果?
我尝试了一些互联网片段,但它们都涉及一些我无法适应的演员。
答案 0 :(得分:2)
你几乎就在那里 - 不需要Enum.GetValues(moduleManifest)
而只需要:
moduleMainfest.Select(x => x.Size).Sum();
然后使用带有谓词的linq .Sum
:
long totalSize = moduleManifest.Sum(fileEntry => fileEntry.Size);
答案 1 :(得分:1)
您的代码看起来很好,希望您获得预期的输出。我认为相反,为了询问内联查询,您必须学习https://jsfiddle.net/Ljck1wmL/7/。这次我可以帮助您使用您正在寻找的内联代码:但强烈建议您在复制这些代码之前先阅读Linq及其LINQ的基础知识。
var totalSize = moduleManifest.Sum(x=> x.Size);