Dictionary 字典键(List<;int>;)在C中检索#

Dictionary 字典键(List<;int>;)在C中检索#,dictionary,c#-2.0,Dictionary,C# 2.0,假设我将我的dict定义如下 Dictionary d=newdictionary() 如何快速检索dict键和值 [更新] 我想获取密钥列表内容。 我试了一个简单的方法如下 List KeysList=新列表(d.Keys) 但在我的案件中,它在复杂的关键点上不起作用 我只能按以下方式使用KeyValuePair foreach (KeyValuePair<List<int>, List<string>> pair in d) { KeysList

假设我将我的dict定义如下

Dictionary d=newdictionary()

如何快速检索dict键和值

[更新]

我想获取密钥列表内容。 我试了一个简单的方法如下

List KeysList=新列表(d.Keys)

但在我的案件中,它在复杂的关键点上不起作用

我只能按以下方式使用
KeyValuePair

foreach (KeyValuePair<List<int>, List<string>> pair in d)
{
     KeysList= new List<int>(pair.Key);
}
foreach(d中的KeyValuePair对)
{
KeysList=新列表(pair.Key);
}

您首先遇到了一个潜在的问题:
列表
不会覆盖Equals,因此您必须使用完全相同的键引用来获取键的值

话虽如此,如果你有参考资料,它很简单

List<string> value = d[key];
列表值=d[键];

列表值;
if(d.TryGetValue(键,输出值))
{
...
}

但是,将
列表作为一个键是很不寻常的-你能告诉我们更多关于你想做什么吗?可能有更好的方法。

您首先遇到了一个潜在问题:
List
不重写Equals,因此您必须使用完全相同的键引用来获取键的值

话虽如此,如果你有参考资料,它很简单

List<string> value = d[key];
列表值=d[键];

列表值;
if(d.TryGetValue(键,输出值))
{
...
}

但是,将
列表作为一个键是很不寻常的-你能告诉我们更多关于你想做什么吗?可能有更好的方法。

你说的快速是什么意思?“你想访问什么?”伊拉什。我迅速地更新了我的方式。就像简单的
d.keys
方法一样,您是否可能正在查找
词典
?这将使最后一行
List KeysList=d.Keys
@Kobi,没有。实际上我正在寻找
List
作为
KeysList
(假设有一个键收集了一些列表项,一个值收集了一些列表项)哦,好的。您能添加这样一个字典的示例(例如,键是
{1}、{1,2,3}、{20,30,1,1}
),以及您期望的输出示例吗?快速是什么意思?“你想访问什么?”伊拉什。我迅速地更新了我的方式。就像简单的
d.keys
方法一样,您是否可能正在查找
词典
?这将使最后一行
List KeysList=d.Keys
@Kobi,没有。实际上我正在寻找
List
作为
KeysList
(假设有一个键收集了一些列表项,一个值收集了一些列表项)哦,好的。请您添加这样一个字典的示例(例如,键是
{1}、{1,2,3}、{20,30,1,1}
),以及您期望的输出的示例?请您详细说明第一点-您所说的“完全相同的键引用”是什么意思?对于同一个列表的两个引用,或者来自
Dictionary.Keys的引用,它不起作用吗?我不能尝试
list value=d[key]。这对我的案子不起作用。这是一个函数调用,我不知道确切的键。顺便说一句,我更新了上面的输入。@Nano:你的问题还是不清楚。你说的是“
列表
,但字典的要点是每个键都是一个
列表
。你对哪一个感兴趣?如果你能提供一个简短但完整的例子来说明你所说的,那么对你的帮助就会容易得多。你能详细说明第一点吗?你所说的“完全相同的关键引用”是什么意思?对于同一个列表的两个引用,或者来自
Dictionary.Keys的引用,它不起作用吗?我不能尝试
list value=d[key]。这对我的案子不起作用。这是一个函数调用,我不知道确切的键。顺便说一句,我更新了上面的输入。@Nano:你的问题还是不清楚。你说的是“
列表
,但字典的要点是每个键都是一个
列表
。你对哪一个感兴趣?如果你能提供一个简短但完整的例子来说明你在说什么,那么帮助你就会容易得多。