【问题标题】:What kind of data structure should I use? [closed]我应该使用什么样的数据结构? [关闭]
【发布时间】:2012-07-29 17:48:39
【问题描述】:

对数组<string, unsigned long>

  • 数组有固定数量的元素(8)。

  • 字段string 已填充(非空,PRIMARY KEY),并且永远不会更改其值。

  • 字段unsigned long默认填充null,然后在运行时更改其值。

  • 这样的对象会很多。

【问题讨论】:

  • 这些值 代表什么?
  • 您打算如何使用这些数据?
  • 你会有 8 个元素还是“很多这样的对象”?
  • “会有很多这样的对象”是否意味着会有很多数组?
  • 上下文很重要。我认为我们需要做更多的工作才能有人给你一个好的建议......

标签: c# .net oop data-structures


【解决方案1】:

胡乱猜测……

public class MyData
{
    private Dictionary<string, ulong> _prop1=new Dictionary<string, ulong>(8);

    public Dictionary<string, ulong> Prop1
    {
        get { return _prop1; }
        set { _prop1 = value; }
    }

    public string CityName { get; set; }

    public ulong? Population { get; set; }
}

还有很多这样的:

var alotofobject s= new List<MyData>();

编辑:

好的,现在我知道你需要什么了:

var cities=new Dictionary<string,ulong>(8);
cities.Add("City1",0);
cities.Add("City2",0);
cities.Add("City3",0);
cities.Add("City4",0);
cities.Add("City5",0);
cities.Add("City6",0);
cities.Add("City7",0);
cities.Add("City8",0);

如果你想设置或获取一个城市的人口,只需使用:

cities["City1"]=293238;

var populationOfCity1=cities["City1"];

作为建议,请购买一本 C# 初学者书籍。

【讨论】:

  • 我喜欢尝试回答,即使操作人员不太确定如何提出问题。
  • 如何填写“CityName”并使其保持不变?
  • 比如FirstCity、SeconCity.......EightCity
  • 我只想在所有生成的 MyData 对象中创建,默认情况下所有字段都已填写,人口为零,所有 8 个城市名称都像 FirstCity,SeconCity.......EightCity
  • 我只是认为我可以在 MyData 类的实现中包含所有 Add() 方法,并使字符串字段为 CONST,因此不允许在运行时设置 CityName
【解决方案2】:

您的问题不清楚,而是自相矛盾。如果您想要很多对象(如果您的意思是很多对),那么您可以使用集合SortedList。如果您只有 8 个这样的对,那么您可以使用另一个集合 Dictionary。

【讨论】:

    【解决方案3】:

    你为什么不让你的生活变得简单,定义一个符合你标准的类,然后列出它们?

    public class MyClass
    {
       public string Name { get; set; }
       public long Number { get; set; } 
    }
    
    List<MyClass> myList = new List<MyClass>();
    

    然后从那里继续添加您需要的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-06
      • 2021-02-26
      • 1970-01-01
      • 2011-12-12
      • 2018-10-28
      • 2011-10-24
      • 1970-01-01
      相关资源
      最近更新 更多