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