2012-05-21 78 views
0

我曾計劃使用一個字典或SortedList爲此,但隨着項目規劃進化,我不知道該怎麼做。尋找正確的方式來存儲數據

我的網站將加載一堆來自數據庫查詢的結果,我需要能夠將這些結果存儲在某處。

這裏的結果看起來怎麼樣:

What type of Dictionary/List should be used for this?

所以,這裏是我存放:

Result #1 (int) > Name > Value 
       > Title > Value 
       > Message > Value 
       > Date > Value 
       > Email > Value 

Result #2 (int) > Name > Value 
       > Title > Value 
       > Message > Value 
       > Date > Value 
       > Email > Value 

Result #3 (int) > Name > Value 
       > Title > Value 
       > Message > Value 
       > Date > Value 
       > Email > Value 

Result #4 (int) > Name > Value 
       > Title > Value 
       > Message > Value 
       > Date > Value 
       > Email > Value 

...等等。我主要關心的是大多數字典和列表以及排序/鏈接列表不能有重複鍵或值。所以我不能使用它們,因爲每個結果都將具有所有相同的鍵名稱,例如名稱,標題,消息等。值可能不同,儘管很多值如Name和Date以及其他值都是模糊的。所以我有點卡住不知道哪種字典/列表選擇允許重複的鍵/名稱不知道如何得到'一對多'關係的事情,所以我可以正確地存儲這些結果。

有人可以幫助我什麼是最好的方式去做這件事嗎?

回答

2

你不只是需要創建一個這樣的類嗎?

public class Result 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Title{ get; set; } 
    public string Message { get; set; } 
    public DateTime Date { get; set; } 
    public string Email { get; set; } 
} 

然後映射你的數據庫結果類似的IList<Result>,或IDictionary<int, Result>鍵關閉Id屬性?

+0

謝謝@David M – Arrow

2

每個結果的關鍵看起來都是一樣的 - 這意味着你應該將這些關鍵字封裝到一個單獨的類中(例如「MailMessage」或任何其他的意思)。如果密鑰真的是零或一個爲最低值,則每個結果增加一個,那麼您只需要得到這些結果的Dictionary<int, MailMessage> - 或者甚至是列表

你會那麼可能需要編寫一些代碼來組裝從數據庫中收集結果收到,用適當的錯誤檢查(例如未知屬性名稱,同一條信息等重複的屬性)。

當然,假設您給我們的數據真的很有代表性。

+0

謝謝@喬恩飛碟雙向。 – Arrow

0

它看起來像你只需要生成(使用實體框架或手工工具)一些類來存儲你的對象。

然後你可以很容易地維護你的對象的集合。

你也可以使用倉庫模式,谷歌它。

+0

謝謝Davio – Arrow

0

創建一個結構(因爲您只想存儲值,不需要任何方法)並將它們存儲在通用列表中。

示例代碼:

List list = new List(); 

list.Add(new MyStruct(10)); 
list.Add(new MyStruct(20)); 
+0

謝謝羅米爾 – Arrow

相關問題