我试图在C#中定义字典对象的静态只读字典,并且不确定这是否是存储由1键和2值组成的对象的正确方法。这段代码不起作用,但它显示了我正在努力实现的目标的逻辑。
private static readonly Dictionary<string, Dictionary<string, int>> StudentMapping = new Dictionary<string, Dictionary<string, int>>
{
{"Liam", new Dictionary<string, int>{"broadway", 1}},
{"Emily", new Dictionary<string, int>{"math", 1}}
}发布于 2022-04-06 18:29:02
不确定这是否是存储由1键和2值组成的对象的正确方法。
若要为每个int键存储2个String值,请使用ValueTuple of (int, int) for TValue
C# has special-case syntax for using ValueTuple
private static readonly Dictionary<string,(int broadway, int math)> StudentMapping = new Dictionary<string,(int broadway, int math)>
{
{ "Liam" , ( broadway: 1, math: 1 ) },
{ "Emily", ( broadway: 1, math: 1 ) },
}发布于 2022-04-06 19:31:36
当您达到将字典嵌套为数据存储的地步时,很可能是时候使用类了
public class Student{
public string Name {get; set;}
public Dictionary<string, int> Grades {get;set;}
}其用法可能是:
var students = new List<Student>(){
new(){
Name = "Emily",
Grades = new () { ["math"] = 1 , [ "english"] = 2 }
}};https://stackoverflow.com/questions/71771870
复制相似问题