Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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# 使用LINQ将字符串拆分为哈希表_C#_Vb.net_Linq - Fatal编程技术网

C# 使用LINQ将字符串拆分为哈希表

C# 使用LINQ将字符串拆分为哈希表,c#,vb.net,linq,C#,Vb.net,Linq,我有: 我需要使用LINQ在哈希表中输出 Hastable应填写为 string s = "A=1,B=2,C=3"; 您可以使用以下代码: ["A"] | 1 ["B"] | 2 ["C"] | 3 请注意,如果输入字符串的格式无效,此代码将中断。此外,它使用强类型和首选字典而不是哈希表 更新: 要避免在创建字典时拆分两次,可以使用以下代码: var dict = s.Split(',') .ToDictionary(x => x.Split('=').F

我有:

我需要使用LINQ在哈希表中输出

Hastable应填写为

string s = "A=1,B=2,C=3";
您可以使用以下代码:

["A"] | 1

["B"] | 2

["C"] | 3
请注意,如果输入字符串的格式无效,此代码将中断。此外,它使用强类型和首选字典而不是哈希表

更新:

要避免在创建字典时拆分两次,可以使用以下代码:

var dict = s.Split(',')
            .ToDictionary(x => x.Split('=').First(),
                          x => int.Parse(x.Split('=')[1]));

您可以拆分字符串,然后拆分每个子字符串以获得键值对:

var dict = s.Split(',')
            .Select(x => x.Split('='))
            .ToDictionary(x => x[0],
                          x => int.Parse(x[1]));

你就不能避免两次分手吗?嗯。。试图搞乱。ToDictionary想要返回一些东西,但迄今为止失败了-难道不能这样做吗?:/@阴影向导:我又更新了。请看一看。我真的不知道你说的从ToDictionary退回东西是什么意思。太好了!无视我之前的评论,我不理解.ToDictionary是如何工作的。现在看来是理想的解决方案,干杯我正要说,在拆分子字符串时,不需要创建中间对象,但我看到您已经复制了我的代码;
Dictionary<string, int> values =
  s.Split(",")
  .Select(x => x.Split("="))
  .ToDictionary(x => x[0], x => Int32.Parse(x[1]))
HashTable pairs = new HashTable(values);