首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义Dictionary<string、Dictionary<string、int>>

定义Dictionary<string、Dictionary<string、int>>
EN

Stack Overflow用户
提问于 2022-04-06 18:21:32
回答 2查看 422关注 0票数 1

我试图在C#中定义字典对象的静态只读字典,并且不确定这是否是存储由1键和2值组成的对象的正确方法。这段代码不起作用,但它显示了我正在努力实现的目标的逻辑。

代码语言:javascript
复制
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}}
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

代码语言:javascript
复制
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 ) },
}
票数 2
EN

Stack Overflow用户

发布于 2022-04-06 19:31:36

当您达到将字典嵌套为数据存储的地步时,很可能是时候使用类了

代码语言:javascript
复制
public class Student{

    public string Name {get; set;}
    public Dictionary<string, int> Grades {get;set;}
}

其用法可能是:

代码语言:javascript
复制
var students = new List<Student>(){
  new(){ 
      Name = "Emily", 
      Grades = new () { ["math"] = 1 , [ "english"] = 2 }   
}};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71771870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档