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.SplitabdString.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();