Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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#_Linq_C# 4.0 - Fatal编程技术网

C# 使用一个连接的LINQ语句拆分字符串

C# 使用一个连接的LINQ语句拆分字符串,c#,linq,c#-4.0,C#,Linq,C# 4.0,我想知道我是否能改变这一点: "abc , 123; xyz, 100; go, 9; move, 50;" 为此: { { "abc", "123" } , { "xyz" , "100" } , { "go" , "9" } , { "move" , "50" } } (由字符串[2]组成的数组)有一个长串接的

我想知道我是否能改变这一点:

"abc , 123; xyz, 100; go, 9; move, 50;"
为此:

{ { "abc", "123" } , { "xyz" , "100" } , { "go" , "9" } , { "move" , "50" } }
(由
字符串[2]
组成的数组)有一个长串接的
LINQ
语句吗

编辑: 首选select语句系列中的

编辑2: 此外,是否还有一种方法可以将输入字符串转换为某种复合类型,如
struct{string,int}
数组或某种
Tuple

比如:

{
新元组(){“abc”,123},
新元组(){“xyz”,100},
新元组(){“go”,9},
新元组(){“移动”,50}
}

使用
String.Split
abd
String.Trim
和LINQ
选择

var result = (from keyValuePair in myString.Split(';')
              where keyValuePair.Trim() != ""
              select (from t in keyValuePair.Split(',')
                      select t.Trim()).ToArray()).ToArray();()
更新 要拥有
KeyValuePair的数组

试试这个:

string str = "abc , 123; xyz, 100; go, 9; move, 50;";

stringses = str.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)
                                        .Select(s => s.Split(new[] {','}))
               .ToArray();

伟大的是否还有一种方法可以将输入字符串转换为:
{{“abc”,123},{“xyz”,100},{“go”,9},{“move”,50}
?i、 结构{string,int}
或一些元组的数组
?@Tal我已经更新了我的帖子来做到这一点。结果存储在KeyValuePair数组中。如果已知逗号
前面的字符串是不同的,那么创建
字典就很自然了。
var result = (from keyValuePair in myString.Split(';')
              where keyValuePair.Trim() != ""
              let splittedKeyValuePair = keyValuePair.Split(',')
              select new KeyValuePair<string, int>(splittedKeyValuePair[0].Trim(), int.Parse(splittedKeyValuePair[1]))).ToArray();
var result = (from keyValuePair in myString.Split(';')
              where keyValuePair.Trim() != ""
              select keyValuePair.Split(',')).ToDictionary(kvp => kvp[0].Trim(), kvp => int.Parse(kvp[1]))
string str = "abc , 123; xyz, 100; go, 9; move, 50;";

stringses = str.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)
                                        .Select(s => s.Split(new[] {','}))
               .ToArray();