Créer un dictionnaire sur une liste avec le groupement de

J'ai l'objet suivant dans une liste:

public class DemoClass
{
    public int GroupKey { get; set; }
    public string DemoString { get; set; }
    public object SomeOtherProperty { get; set; }
}

Maintenant, je veux créer suivantes dictionnaire hors de lui:

Dictionary<int, List<DemoClass>>

Je veux du groupe de la List<DemoClass> par la propriété GroupKey, mais je ne comprends pas comment c'est fait et un peu d'aide.

Après avoir réfléchi un peu, j'ai obtenu le besoin de comportement avec:

var groupedDemoClasses = from demoClass in mySepcialVariableWhichIsAListOfDemoClass
                            group demoClass by demoClass.GroupKey
                            into groupedDemoClass
                            select groupedDemoClass;
var neededDictionary = groupedDemoClass.ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());

mais, est-il un moyen de faire cela dans un seul état?