什么是存储此类数据的数据结构

时间:2011-10-24 20:42:15

标签: c# winforms .net-3.5 collections dictionary

例如,我有四个电子表格,我想存储这样的内容:

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

我以为我应该使用字典<>但是MSDN说密钥应该是独一无二的。 那么这样做的正确方法是什么?

P.S:我使用的是.NET 3.5,不能使用Tuple。 感谢

3 个答案:

答案 0 :(得分:2)

创建一个自定义类并将其用作您的密钥。包括创建唯一键(电子表格名称和行列表)所需的所有字段,然后适当地重写Equals和GetHashCode。

答案 1 :(得分:1)

这听起来像是我的列表清单List<List<T>>。将它包装在一个自定义类中可能会很好,为您提供所需的语义(如果没有,它可能会变得复杂,以便记住列表中的内容等;并且您可能希望在每个子列表上添加一些额外的元数据)。

答案 2 :(得分:1)

快速而直接的解决方案:

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 } }
}

如果您需要某种灵活性 - 通过其他人建议的自定义类抽象传播和相关行。