Utworzenie słownika na liście z grupowaniem

Mam następujący obiekt na liście:

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

Teraz chcę z niego utworzyć następujący słownik:

Dictionary<int, List<DemoClass>>

Chcę pogrupować List <DemoClass> według właściwości GroupKey, ale nie rozumiem, jak to się robi.

Po krótkiej refleksji osiągnęłam taki rezultat:

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());

ale czy istnieje sposób, by zamienić to w jedno zdanie? Z góry dzięki za pomoc :)

1 odpowiedź

spróbuj tak:

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

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.