Reputation: 91
How will i make this an oneliner code?
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;
Upvotes: 2
Views: 80
Reputation: 1
A simpler approach:
var sum = directory.Files.Where(file => file.FileCommits.Any())
.Sum(file => file.FileCommits.Last().LineOfCode);
Upvotes: 0
Reputation: 149598
What you're doing is collecting the sum lines of code. You can use Enumerable.Sum
for that (optimized in curtsy of @ScottChamberlain):
var sum = directory.Files.Sum(file =>
file.FileCommits.Select(commit => commit.LinesOfCode)
.LastOrDefault())
Upvotes: 7