user3201077
user3201077

Reputation: 91

How to do oneliner code with loop and condition?

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

Answers (2)

user5118160
user5118160

Reputation: 1

A simpler approach:

var sum = directory.Files.Where(file => file.FileCommits.Any())
                         .Sum(file => file.FileCommits.Last().LineOfCode);

Upvotes: 0

Yuval Itzchakov
Yuval Itzchakov

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

Related Questions