首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字典结构

字典结构
EN

Code Review用户
提问于 2013-04-16 16:44:58
回答 1查看 171关注 0票数 0

我对字典和编码非常陌生,我希望能得到一些关于我应该如何构造我的字典的建议。

我有一个收集器号码,里面有电表。每个电表都有一个电表号和一个ert号,并希望同时存储表号和ert号。每个表的读数、时间戳和值都会有一个列表。另外,我希望能够通过ert号或仪表号来选择值。我已经为字典附上了当前的结构,但不知道这是否是编排词典的最佳方式。有人建议过对象,但我以前从未使用过对象。

代码语言:javascript
复制
{
Dictionary<Int32, Dictionary<string, Meter>> dictionary = new Dictionary<int, Dictionary<string, Meter>>();

if (!dictionary.ContainsKey(objectID))
{
    dictionary.Add(objectID, new Dictionary<string, Meter>());
}

Meter meter = new Meter();
meter.ertNumber = "9480:1";
meter.meterNumber = "fsadfa";
meter.Reading = new Dictionary<Int32, double>();
meter.Reading.Add(0, 6);

dictionary[objectID].Add("Test", meter);
}

class Meter
{
    public String ertNumber { get; set; }
    public String meterNumber { get; set; }
    public Dictionary<Int32, double> Reading { get; set; }
}
EN

回答 1

Code Review用户

发布于 2013-04-16 19:12:49

如果您有一个Meters的集合,并且希望能够找到一个基于属性的集合,我将这样做:

创建一个List of Meters,l说。

代码语言:javascript
复制
List<Meter> l = new List<Meter>();

然后实现像这样的扩展方法。

代码语言:javascript
复制
public static class MeterExt
{
    public static Meter GetByErm(this List<Meter> l, String sErm)
    {
        Meter r = l.Find(s => s.ertNumber == sErm);

        return r;
    }

    public static Meter Get(this List<Meter> l, String sMeter)
    {
        Meter r = l.Find(s => s.meterNumber == sMeter);

        return r;
    }
}

这样你就能找到你的计价器。

代码语言:javascript
复制
Meter m = l.Get("fsadfa");
票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/25143

复制
相关文章

相似问题

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