# adding properties together from list of objects using LINQ

Looking to see if there is a simpler way to achieve this. I would love if I could keep the return as a one-line LINQ expression. I want to grab the total number of hints used, which can be more than one.

public int hintsUsed
{
get
{
int i = 0;
questions.ForEach(q => i += q.hintsUsed);
return i;
}
}


You can use the Sum function

public int HintsUsed => questions.Sum(q => q.hintsUsed);


By using an expression bodied member (since C# 6.0), you can even get rid of the get and the return keywords plus a few braces.

The code above is equivalent to

public int HintsUsed
{
get
{
return questions.Sum(q => q.hintsUsed);
}
}


Most of the LINQ-to-Objects functionality is provided by the Enumerable Class.

• Ahh perfect, thank you. Sometimes its difficult to search for these things because I'm not sure which words to use. I will definitely use this in the future. – Premier Bromanov May 13 '18 at 21:15