adding properties together from list of objects using LINQ
You can use the Sum function

public int HintsUsed =&gt; questions.Sum(q =&gt; 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 =&gt; q.hintsUsed);
    }
}


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