Niet te verwarren met: Hoe kan ik lijst naar hash-tabel omzetten in C #?
Ik heb een lijst met modellen die ik wil ordenen in een hashtabel met de enums als sleutel, en de lijst met modellen (die de waarde van het enum hebben) als de waarde.
public enum MyEnum
{
Blue,
Green
}
public class MyModel
{
public MyModel(MyEnum myEnum, string foo, int bar)
{
this.MyEnum = myEnum;
this.Foo = foo;
this.Bar = bar;
}
public MyEnum MyEnum { get; set; }
public string Foo { get; set; }
public int Bar { get; set; }
}
List models = new List();
models.Add(new MyModel(MyEnum.Blue, "How", 1));
models.Add(new MyModel(MyEnum.Green, "Now", 2));
models.Add(new MyModel(MyEnum.Blue, "Brown", 3));
models.Add(new MyModel(MyEnum.Green, "Cow", 4));
Wat is de gemakkelijkste manier om de lijst om te zetten in een hash-tabel die er als volgt uitziet (vergeef de json):
{
Blue:
[
{ Blue, "How", 1 },
{ Blue, "Brown", 3 }
],
Green:
[
{ Green, "Now", 2 },
{ Green, "Cow", 4 }
]
}
Wanneer ik zoiets doe als dit:
var taskTable = tasks.Cast().ToDictionary(o => o.Task); (Where Task is the Enum)
Ik krijg deze uitzondering: "Een item met dezelfde sleutel is al toegevoegd."
One-liners met Lambda of Linq worden op prijs gesteld!