Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过类对象访问列表中的字典值?_C#_List_Object_Dictionary - Fatal编程技术网

C# 如何通过类对象访问列表中的字典值?

C# 如何通过类对象访问列表中的字典值?,c#,list,object,dictionary,C#,List,Object,Dictionary,我的课程如下: public class Source { ... ... public List<Dictionary<int, int>> blanks { get; set; } } 如何访问这些元素 谢谢。src.blanks[0]是一本完整的词典,而不是一个单一的键值对。这就是为什么您无法访问其上的.Key或.Value的原因-可能有许多键以及与它们相关的许多值 您可以通过枚举字典中位于零位置的所有键值对来访问它们,如下所示:

我的课程如下:

public class Source
{     
    ...
    ...
    public List<Dictionary<int, int>> blanks { get; set; }
}
如何访问这些元素


谢谢。

src.blanks[0]是一本完整的词典,而不是一个单一的
键值对。这就是为什么您无法访问其上的
.Key
.Value
的原因-可能有许多键以及与它们相关的许多值

您可以通过枚举字典中位于零位置的所有键值对来访问它们,如下所示:

foreach (var kvp in src.blanks[0]) {
    int a = kvp.Key;
    int b = kvp.Value;
    Console.WriteLine("Key:{0} Value:{1}", a, b);
}

src.blanks[0]
是一个完整的词典,而不是单个的
KeyValuePair
。这就是为什么您无法访问其上的
.Key
.Value
的原因-可能有许多键以及与它们相关的许多值

您可以通过枚举字典中位于零位置的所有键值对来访问它们,如下所示:

foreach (var kvp in src.blanks[0]) {
    int a = kvp.Key;
    int b = kvp.Value;
    Console.WriteLine("Key:{0} Value:{1}", a, b);
}

空格[0]
返回一个
字典
,您需要指定项目的键

src.blanks[0][key]
或循环使用您的值:

foreach(var pair in src.blanks[0])
{
    int currentKey = pair.Key;
    int currentValue = pair.Value;
}

空格[0]
返回一个
字典
,您需要指定项目的键

src.blanks[0][key]
或循环使用您的值:

foreach(var pair in src.blanks[0])
{
    int currentKey = pair.Key;
    int currentValue = pair.Value;
}

要获取该值,应首先为列表编制索引,然后为字典编制索引

获得价值

int b = (src.blanks[0])[0]

要获取该值,应首先为列表编制索引,然后为字典编制索引

获得价值

int b = (src.blanks[0])[0]

您正试图访问列表中没有
属性的词典。词典中的
Keyvaluepairs
具有键

因此,假设您想查看列表中的第一本词典:

Dictionary<int, int> dict = s.blanks[0];
// lookup 30:
int value = dict[30]; // 40
Dictionary dict=s.blanks[0];
//查阅30:
int value=dict[30];//40

您正试图访问列表中没有
键的词典。词典中的
Keyvaluepairs
具有键

因此,假设您想查看列表中的第一本词典:

Dictionary<int, int> dict = s.blanks[0];
// lookup 30:
int value = dict[30]; // 40
Dictionary dict=s.blanks[0];
//查阅30:
int value=dict[30];//40

您需要以下内容:

var listItem = src.blanks[0];
var dictionaryItem = listItem[0];

var a = dictionaryItem.Key;
var b = dictionaryItem.Value;

尽管如此,我建议您摆脱那些“嵌套泛型”
List您想要的东西如下所示:

var listItem = src.blanks[0];
var dictionaryItem = listItem[0];

var a = dictionaryItem.Key;
var b = dictionaryItem.Value;

尽管如此,我还是建议您摆脱那些“嵌套泛型”
list您忘记了字典的索引。举个例子
src.blanks[0][Key]
你忘记了字典的索引。简单地说作为一个例子
src.blanks[0][Key]