我想弄清楚我应该用什么类型的结构或容器来进行快速项目。我需要从GUI输入未知数量的集合(每个集合将包含名称,描述,唯一ID,优先级和布尔值)。每个集合都会添加一个未知数量的字符串(也来自GUI)。输入所有信息后,它将被写入文本文件,其中集合的名称是文件夹的名称,该文件夹中的一个文本文件将包含与该集合关联的所有字符串。
我尝试创建一个包含两个相关表的数据集,但我似乎无法以编程方式将行添加到表中并使得这些集显示在我的datagridview中。现在我又回来试图找到另一种方法来保存内存中的集合,并在将它们保存到磁盘之前将其显示在GUI上。
你会用什么?
答案 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)
你可以:
Set
命名的类,该类具有名称,描述,唯一ID,优先级和布尔值,作为属性包含在内。List<string>
添加一个额外属性,以存储以dinamically方式添加的字符串。List<Set>
来存储这些集。答案 4 :(得分:0)
集合对象。