2009-11-06 57 views
0

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

我试着创建一个数据集与两个相关的表,但我似乎无法以编程方式将行添加到表,并获取设置显示在我的datagridview。现在我回过头来试图找到另一种方法来将这些集合保存在内存中,并在将它们保存到磁盘之前将它们显示在GUI上。

你会用什么?

+0

“set”是否意味着数据结构必须具有一组数学属性?那是“没有命令”,“没有重复”等等?或者它可以只是一个列表,它是有序的,可以有重复的? – 2009-11-06 15:10:55

+0

该套件是有序的,没有重复。字符串没有排序。 – Theresa 2009-11-06 15:56:13

回答

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

我只想用一个类:

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; } 
    } 

的UI,你将有一个IList<Item>

编辑:

如果必须有没有重复,你可以把集合到一个Dictionary中,其中键是ID字段,值是Item对象。该列表将不会被订购,但你可以写自己的排序方法:

IDictionary<int, Item> listOfData; 
0

一般我会建议使用类,结构时,应使用实例的大小小于16个字节,这不会是。任何更大的事情,你会开始在性能上稍微放慢速度。

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

+0

我最终回到DataSet/Datagridviews选项。我得到了那个工作。 – Theresa 2009-11-08 16:55:17

0

您可以:

  1. 创建一个名为例如Set类,它有名称,描述,唯一的ID,优先级和布尔对包括作为属性。
  2. 为班级添加一个额外的属性,类型为List<string>,用于存储dinamically添加的字符串。
  3. 有一个List<Set>来存储这些集合。
0

一个集合对象。

相关问题