在这个实例中你会使用什么类型的结构/容器?

时间:2009-11-06 15:03:25

标签: c# data-structures

我想弄清楚我应该用什么类型的结构或容器来进行快速项目。我需要从GUI输入未知数量的集合(每个集合将包含名称,描述,唯一ID,优先级和布尔值)。每个集合都会添加一个未知数量的字符串(也来自GUI)。输入所有信息后,它将被写入文本文件,其中集合的名称是文件夹的名称,该文件夹中的一个文本文件将包含与该集合关联的所有字符串。

我尝试创建一个包含两个相关表的数据集,但我似乎无法以编程方式将行添加到表中并使得这些集显示在我的datagridview中。现在我又回来试图找到另一种方法来保存内存中的集合,并在将它们保存到磁盘之前将其显示在GUI上。

你会用什么?

5 个答案:

答案 0 :(得分:2)

我只想使用一个类:

 public class Item
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public int ID { get; set; }
        public int Priority { get; set; }
        public bool Included { get; set; }
        public IList<string> Data { get; set; }
    }

对于用户界面,您将拥有IList<Item>

修改

如果必须没有重复项,您可以将该组放入一个字典,其中键是ID字段,值是Item对象。此列表不会被订购,但您可以编写自己的排序方法:

IDictionary<int, Item> listOfData;

答案 1 :(得分:1)

这样的事情怎么样......

public class TheresasSet {
    public string Name { get; set }
    public string Description { get; set; }
    public int ID { get; set; }
    public int Priority { get; set; }
    public bool Included { get; set; }
    public List<string> StringData { get; private set; }

    public TheresasSet() {
        StringData = new List<string>();
    }
}

答案 2 :(得分:0)

通常我建议使用类,当实例大小小于16字节时应该使用结构,这不会。任何更大的东西,你将开始遭受性能的轻微放缓。

如果您在显示信息时遇到问题,可以查看覆盖ToString()方法,或者提供有关DataGridView中不起作用的更多详细信息。

答案 3 :(得分:0)

你可以:

  1. 创建一个以示例Set命名的类,该类具有名称,描述,唯一ID,优先级和布尔值,作为属性包含在内。
  2. 为类List<string>添加一个额外属性,以存储以dinamically方式添加的字符串。
  3. 有一个List<Set>来存储这些集。

答案 4 :(得分:0)

集合对象。