0
我的程序有一個單元格網格,我希望能夠按行或按列號高效查詢。我應該用什麼樣的結構來做到這一點?如何使用複合鍵從字典中獲取值?
比如我想有以下幾種方法:
CellsCollection.GetCell(Int32 row, Int32 column)
CellsCollection.GetAllCellsInRow(Int32 row)
CellsCollection.GetAllCellsInColumn(Int32 column)
我的第一次嘗試是創建兩個字段(行和列),然後字典的結構與結構的組合鍵:Dictionary<struct, cell>
。
CellsCollection.GetCell(Int32 row, Int32 column)
是沒有問題的,因爲我會查詢組合鍵的字典。
另外兩個(獲得行/列細胞)目前的問題,因爲如果我這樣做:
dictionary.Where(keyPair=>keyPair.Key.Row == row).Select(keyPair=>keyPair.Values.Cell)
然後辭典鍵將失去意義,程序要經過字典中的每一個關鍵。
我想到了一個嵌套的字典(外部的一個行鍵和內部的一個列鍵),但我只會幫助,如果我按行查詢,而不是列。
你會如何克服這一點?
這是如此瘋狂,它只是可能會奏效!現在如何處理需要調整數組的大小,因爲需要更多的行/列? (爲了以防萬一,我不能只分配最大數量的行和列)。 – Manuel
我用字典和數組測試了這兩個數組,並且數組更快並且使用更少的內存。 – Manuel