var invalidPageNumberAndSize = new Dictionary<string, string>
{
{"0","0"},
{"0", ""},
{"", "0"},
{"abc", ""},
{"", "abc"},
{"abc", "abc"},
};
如果我尝试循环,这将会出错,因为我有两个相同的密钥(我有2“0”,依此类推)所以它会在我的循环中抛出一个双键错误。
我该如何做到这一点?
答案 0 :(得分:2)
如果您需要多个重复的密钥,则无法使用字典。
一个选项是你可以拥有Dictionary<string,List<string>>
或类似的(其中每个键可以有多个值。这是填充的更多工作,但支持这种类型的场景。另一种选择是使用Lookup
话虽如此,鉴于您的变量名称,我会重新考虑您要做的事情。将“大小”和“页码”存储为字符串似乎不合适。
答案 1 :(得分:0)
你可以看看Lookup。它的行为类似于字典,但它是不可变的,并将对数据进行分组。您将使用Contains而不是contains key,并且您不会获得良好的初始化语法。
var invalidPageNumberAndSizeData = new[] {
new { key = "0", value = "0"},
new { key = "0", value = ""},
new { key = "", value = "0"},
new { key = "abc", value = ""},
new { key = "", value = "abc"},
new { key = "abc", value = "abc"}
};
var invalidPageNumberAndSize = invalidPageNumberAndSizeData.ToLookup(c => c.key, c => c.value);
var isAbc = invalidPageNumberAndSize.Contains("abc");
var abcData = invalidPageNumberAndSize["abc"];