如何将一对字符串存储在非唯一列表中

时间:2011-08-19 10:50:37

标签: c# .net

我有一种情况,我从XML文档加载一些配置数据,我有一堆包含字符串对的元素。我试着寻找一种将这些存储在一个对象中的好方法。

我喜欢Dictionary<string,string>之类的东西,除了我希望能够拥有重复的键,我永远不会搜索它的单个值,jsut迭代它以生成一些HTML来放在页面上

有一个好的对象可以使用吗?我知道我可以创建一个自己的小类来保存两位数据,并有一个列表,但这似乎有点过分。

我也可以只有两个列表,只知道一个中的第n个元素与另一个中的第n个元素一起使用。尽管如此,这让我感到害怕。

还有System.Web.UI.Pair似乎做了我想要的但我不确定它是否是在System.Web.UI命名空间中使用它的好习惯......

我可能错过了一些明显的东西,但我想我会问,而不是花费更多的时间来考虑最好的方法来做到这一点。 :)

3 个答案:

答案 0 :(得分:11)

您只需使用List<KeyValuePair<string, string>>List<Tuple<string, string>>

即可

您可以添加以下内容:

// for List<KeyValuePair<string, string>>
list.Add(new KeyValuePair<string, string>(value1, value2));

// for List<Tuple<string, string>>
list.Add(Tuple.Create(value1, value2));

您可以访问以下项目:

foreach(var item in list)
{
    // for List<KeyValuePair<string, string>>
    var value1 = item.Key;
    var value2 = item.Value;

    // for List<Tuple<string, string>>
    var value1 = item.Item1;
    var value2 = item.Item2;
}

答案 1 :(得分:6)

就我个人而言,我会创建一个自己的小类来保存两位数据,并有一个列表,这对我来说似乎是对的。

可能你会迟早会在那里添加一些逻辑。

答案 2 :(得分:0)

我建议使用NameValueCollection类。