我如何使这个oneliner代码?
int result = 0;
if (directory.Files.Count() > 0)
{
foreach (var file in directory.Files)
{
result += file.FileCommits.Count() > 0 ? file.FileCommits.Last().LinesOfCode : 0;
}
}
return result;
答案 0 :(得分:7)
您正在做的是收集代码的总和。你可以使用Enumerable.Sum
(在@ScottChamberlain的屈膝礼中进行了优化):
var sum = directory.Files.Sum(file =>
file.FileCommits.Select(commit => commit.LinesOfCode)
.LastOrDefault())
答案 1 :(得分:0)
更简单的方法:
var sum = directory.Files.Where(file => file.FileCommits.Any())
.Sum(file => file.FileCommits.Last().LineOfCode);