纵码过河山 2020-04-26 14:42 采纳率: 66.7%
浏览 967
已采纳

c#的字典如何根据key,不每项列举能获取value内的所有元素?

例如有下面的数据:

ID,  a,    b,    c,   d
1,   甲,   0,    +,   x
2,   乙,   00,   -,   y
3,   丙,   000,  /,   z

我先以ID为key,其他为Value的元素生成字典:

public class Information
{
    public int ID;
    public string a;
    public string b;
    public string c;
    public string d;
}

创建字典:

private Dictionary<int, Information> InforDict = new Dictionary<int, Information>(); 

字典添加value的元素:

Information infor = new Information(); 
//Infor.a=xxx……
InforDict.Add(infor.ID, infor); 

根据ID获取Value:

InforDict.TryGetValue(ID, out infor); 

现在要获取value(infor)内的所有元素:a, b, c, d时,有没有什么办法避免采用列举 infor.a, infor.b,infor.c,infor.d这样,而用循环就能获取当前Key的所有元素值和元素名?

比如key=1的时候,就能输出“a 甲, b 0, c +, d x?”

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-04-26 14:48
    关注
    public class Information
    {
        public int ID {get;set;}
        public string a{get;set;}
        public string b{get;set;}
        public string c{get;set;}
        public string d{get;set;}
    }
    
    if (InforDict.TryGetValue(ID, out infor))
    {
    foreach (var prop in infor.GetType().GetPropertites())
    {
    Console.WriteLine("{0}, {1}", prop.Name, prop.GetValue(infor, null));
    }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择