2011-10-24 42 views
0

比如我有四個表格,我想存儲是這樣的:什麼是數據stucture存儲這類數據

Rows 1,2,3 from spread1, 
Rows 1,2 from spread2, 
Rows 3,4 from spread3, 
Row 3 from spread4 

,我想我應該使用詞典<>但MSDN說,關鍵應該是uniqe。 那麼這樣做的正確方法是什麼?

P.S:我使用.NET 3.5,不能使用Tuple。 謝謝

+0

你想處理範圍嗎?即行1至56,而不必列出全部56個行號? –

+0

nop,no range .. – Bohn

回答

2

做一個自定義的類,並使用它作爲你的鑰匙。包括創建唯一鍵(電子表格名稱和行列表)所需的所有字段,然後適當地覆蓋Equals和GetHashCode。

+0

有沒有什麼辦法可以爲此創建一個Collection集合?而不是一個新的類......當前代碼在整個代碼中都使用它作爲全局變量。 – Bohn

1

這聽起來像是我的名單,List<List<T>>。將它包裝在自定義類中以提供所需的語義可能會很好(如果不是,記住哪些列表中的內容會變得複雜,並且可能需要在每個子列表上添加一些額外的元數據)。

+0

可以請你給我看一個這個清單列表聲明的示例代碼嗎? – Bohn

1

快速straigtforward解決方案:

IDictionary<string, IList<int>> map = new Dictionary<string, IList<int>> 
{ 
    { "spread1", new List<int> { 1, 2, 3 } }, 
    { "spread2", new List<int> { 1, 2 } }, 
    { "spread3", new List<int> { 3, 4 } }, 
    { "spread5", new List<int> { 3 } } 
} 

如果你需要某種靈活性 - 通過自定義類的抽象利差和相關行像其他人建議。

+0

看起來像我所需要的。但對我來說仍然是一個困惑,在這裏你是硬編碼1,2,3 ......但在真實的代碼中,例如這是在一個方法調用中,每次調用這個方法時,我們都會添加其中的一個值,例如我們將值2添加到spread1字典中......下次我們將值4添加到spread3字典中......但是在示例代碼中,我們使用NEW,那麼如何仍然可以保留之前的值並添加到它們? – Bohn

相關問題