2009-11-06 55 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

一個集合對象。

相關問題