Не путать с: Как я могу преобразовать List в Hashtable в C #?
У меня есть список моделей, которые я хочу организовать в хеш-таблицу с перечислениями в качестве ключа, и список моделей (которые имеют значение перечисления) в качестве значения.
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<MyModel> models = new List<MyModel>();
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));
Какой самый простой способ преобразовать список в хеш-таблицу, которая бы выглядела следующим образом (Простите, json):
{
Blue:
[
{ Blue, "How", 1 },
{ Blue, "Brown", 3 }
],
Green:
[
{ Green, "Now", 2 },
{ Green, "Cow", 4 }
]
}
Когда я делаю что-то вроде этого:
var taskTable = tasks.Cast<TaskModel>().ToDictionary(o => o.Task); (Where Task is the Enum)
Я получаю это исключение: «Элемент с тем же ключом уже добавлен».
Один лайнер с Lambda или Linq приветствуется!