Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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中存储#_C#_.net_Dictionary - Fatal编程技术网

C# 在嵌套字典C中存储#

C# 在嵌套字典C中存储#,c#,.net,dictionary,C#,.net,Dictionary,我想把这个放到字典中 因此,Broadcom将是第一本词典中的关键,其余的将是value-the-value。该值应存储为字典,其中连接名称是键,本地连接是值。我该怎么做呢?我是编程新手。谢谢你的帮助。 var dic=新字典( {“博通”, 新词典( { {“连接名称”,“本地连接”}, {“已启用DHCP”,“否”}, {“IP地址”[01],“abc.de.fg.h”} } ) } ); 我唯一关心的是IP地址本身应该在连接设置中的字典中,而不是一个字符串,因此子字典应该是字典 与flq

我想把这个放到
字典中
因此,Broadcom将是第一本词典中的关键,其余的将是value-the-value。该值应存储为字典,其中连接名称是键,本地连接是值。我该怎么做呢?我是编程新手。谢谢你的帮助。

var dic=新字典(
{“博通”,
新词典(
{
{“连接名称”,“本地连接”},
{“已启用DHCP”,“否”},
{“IP地址”[01],“abc.de.fg.h”}
}
)
}
);
我唯一关心的是IP地址本身应该在连接设置中的字典中,而不是一个字符串,因此子字典应该是
字典

与flq的答案类似,这里有一个更全面的解决方案,它使这两个子词典:

var dic = new dictionary<string, dictionary <string, string>>(
    {"Broadcom", 
        new dictionary <string, string>(
            {
                {"Connection Name", "Local Area Connection"},
                {"DHCP Enabled", "No"},
                {"IP address(es) [01]", "abc.de.fg.h"}
            }
        )
    }
);
使用System.Collections.Generic;
使用System.Linq;
名称空间LINQDictionaryDemo
{
公共类IP地址
{
公共int索引{get;private set;}
公共字符串值{get;private set;}
公共IP地址(整数索引,字符串值)
{
这个。索引=索引;
这个。值=值;
}
}
公共类网络连接
{
公共字符串名称{get;set;}
公共字符串连接名{get;set;}
公共布尔DHCPEnabled{get;set;}
公共列表IP地址{get;set;}
公共词典
{
返回新词典
{
{“ConnectionName”,ConnectionName}
,{“DHCPEnabled”,DHCPEnabled.ToString()}
,{“IPAddresses”,IPAddresses.ToDictionary(k=>k.Index,v=>v.Value)}
};
}
}
公共静态类演示
{
公共静态无效运行()
{
var lnc=新列表
{
新网络连接
{
Name=“Broadcom”,
ConnectionName=“本地区域连接”,
DHCPEnabled=false,
IPAddresses=新列表{新IPAddress(1,“abc.de.fg.h”)}
}
};
var dic=lnc.ToDictionary(k=>k.Name,v=>v.ToDictionary());
}
}
}

var dic=新字典(
{“博通”,
新词典(
{
{“连接名称”,“本地连接”},
{“已启用DHCP”,“否”},
{“IP地址”[01],“abc.de.fg.h”}
}
)
}
);
我唯一关心的是IP地址本身应该在连接设置中的字典中,而不是一个字符串,因此子字典应该是
字典

与flq的答案类似,这里有一个更全面的解决方案,它使这两个子词典:

var dic = new dictionary<string, dictionary <string, string>>(
    {"Broadcom", 
        new dictionary <string, string>(
            {
                {"Connection Name", "Local Area Connection"},
                {"DHCP Enabled", "No"},
                {"IP address(es) [01]", "abc.de.fg.h"}
            }
        )
    }
);
使用System.Collections.Generic;
使用System.Linq;
名称空间LINQDictionaryDemo
{
公共类IP地址
{
公共int索引{get;private set;}
公共字符串值{get;private set;}
公共IP地址(整数索引,字符串值)
{
这个。索引=索引;
这个。值=值;
}
}
公共类网络连接
{
公共字符串名称{get;set;}
公共字符串连接名{get;set;}
公共布尔DHCPEnabled{get;set;}
公共列表IP地址{get;set;}
公共词典
{
返回新词典
{
{“ConnectionName”,ConnectionName}
,{“DHCPEnabled”,DHCPEnabled.ToString()}
,{“IPAddresses”,IPAddresses.ToDictionary(k=>k.Index,v=>v.Value)}
};
}
}
公共静态类演示
{
公共静态无效运行()
{
var lnc=新列表
{
新网络连接
{
Name=“Broadcom”,
ConnectionName=“本地区域连接”,
DHCPEnabled=false,
IPAddresses=新列表{新IPAddress(1,“abc.de.fg.h”)}
}
};
var dic=lnc.ToDictionary(k=>k.Name,v=>v.ToDictionary());
}
}
}

请帮自己一个大忙,用一门课来做这件事,因为两个月后你将无法理解你的代码:

using System.Collections.Generic;
using System.Linq;

namespace LINQDictionaryDemo
{
    public class IPAddress
    {
        public int Index { get; private set; }
        public string Value { get; private set; }

        public IPAddress(int Index, string Value)
        {
            this.Index = Index;
            this.Value = Value;
        }
    }

    public class NetworkConnection
    {
        public string Name { get; set; }
        public string ConnectionName { get; set; }
        public bool DHCPEnabled { get; set; }
        public List<IPAddress> IPAddresses { get; set; }

        public Dictionary<string, object> ToDictionary()
        {
            return new Dictionary<string, object>
                       {
                            { "ConnectionName", ConnectionName }
                            , { "DHCPEnabled", DHCPEnabled.ToString() }
                            , {"IPAddresses", IPAddresses.ToDictionary(k => k.Index, v => v.Value)}
                       };
        }
    }

    public static class Demo
    {
        public static void Run()
        {
            var lnc = new List<NetworkConnection>
                          {
                              new NetworkConnection
                                  {
                                      Name = "Broadcom",
                                      ConnectionName = "Local Area Connection",
                                      DHCPEnabled = false,
                                      IPAddresses = new List<IPAddress> {new IPAddress(1, "abc.de.fg.h")}
                                  }
                          };
            var dic = lnc.ToDictionary(k => k.Name, v => v.ToDictionary());
        }
    }
}

为您提供类型为
Dictionary
的字典。你认为,两周后你会更好地理解这一点吗,或者更确切地说,你会理解你的恐怖字典吗?

请帮你自己一个大忙,并为此使用一门课程,因为两个月后你将无法理解你的代码:

using System.Collections.Generic;
using System.Linq;

namespace LINQDictionaryDemo
{
    public class IPAddress
    {
        public int Index { get; private set; }
        public string Value { get; private set; }

        public IPAddress(int Index, string Value)
        {
            this.Index = Index;
            this.Value = Value;
        }
    }

    public class NetworkConnection
    {
        public string Name { get; set; }
        public string ConnectionName { get; set; }
        public bool DHCPEnabled { get; set; }
        public List<IPAddress> IPAddresses { get; set; }

        public Dictionary<string, object> ToDictionary()
        {
            return new Dictionary<string, object>
                       {
                            { "ConnectionName", ConnectionName }
                            , { "DHCPEnabled", DHCPEnabled.ToString() }
                            , {"IPAddresses", IPAddresses.ToDictionary(k => k.Index, v => v.Value)}
                       };
        }
    }

    public static class Demo
    {
        public static void Run()
        {
            var lnc = new List<NetworkConnection>
                          {
                              new NetworkConnection
                                  {
                                      Name = "Broadcom",
                                      ConnectionName = "Local Area Connection",
                                      DHCPEnabled = false,
                                      IPAddresses = new List<IPAddress> {new IPAddress(1, "abc.de.fg.h")}
                                  }
                          };
            var dic = lnc.ToDictionary(k => k.Name, v => v.ToDictionary());
        }
    }
}

为您提供类型为
Dictionary
的字典。你觉得呢,两周后你能更好地理解这一点吗,或者更确切地说是你可怕的字典?

你的数据来源是什么,以何种形式获取?你的数据来源是什么,以何种形式获取?当数据位于.txt文件中时,我该如何处理?@DrShah:你需要解析它。@DrShah你需要读取文本文件并将其解析为一些变量(可能一次使用一行TextReader/StreamReader:),然后从变量创建字典。我还建议使用一个类来封装您的逻辑。在这种情况下,我该怎么做
var dict = listOfWhatisThis.ToDictionary(k=>k.Name, v=>v}