sách gpt4 ai đã đi

C# 根据模型中的枚举属性将列表<模型> 转换为字典<><模型>>?

In lại 作者:行者123 更新时间:2023-11-30 14:38:26 27 4
mua khóa gpt4 Nike

不要混淆:How can I convert List to Hashtable in 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 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));

将列表转换为如下所示的哈希表的最简单方法是什么(请原谅 json):

{ 
Blue:
[
{ Blue, "How", 1 },
{ Blue, "Brown", 3 }
],
Green:
[
{ Green, "Now", 2 },
{ Green, "Cow", 4 }
]
}

当我做这样的事情时:

var taskTable = tasks.Cast().ToDictionary(o => o.Task); (Where Task is the Enum)

我收到此异常:“已添加具有相同键的项目。”

感谢使用 Lambda 或 Linq 的衬垫!

1 Câu trả lời

在我看来你可以使用 Lookup :

var lookup = models.ToLookup(o => o.Task);

或者如果你真的想要 Dictionary> :

var dictionary = models.GroupBy(o => o.Task)
.ToDictionary(g => g.Key, g => g.ToList());

关于C# 根据模型中的枚举属性将列表<模型> 转换为字典<><模型>>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7921629/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com