我使用字符串存储国家/地区代码及其成本中心代码值。我希望通过使用LINQ查询来解除字符串和;字符。 srting是
IND|001;TWN|002;USA|003;LDN|;MYS|005;
请帮我用LINQ
分发字符串值答案 0 :(得分:6)
我假设您需要一个Tuple<string,string>
列表作为输出。
var myString = "IND|001;TWN|002;USA|003;LDN|;MYS|005;";
var objects = myString.Split(';')
.Where(x => !string.IsNullOrEmpty(x))
.Select (x => x.Split('|'))
.Select (x => Tuple.Create(x[0],x[1]))
.ToList();
结果:
IND 001
TWN 002
USA 003
LDN
MYS 005
答案 1 :(得分:2)
而不是LINQ使用String.Split
。
string s = "IND|001;TWN|002;USA|003;LDN|;MYS|005;";
string[] splitData = s.Split(new string[] { "|", ";" }, StringSplitOptions.RemoveEmptyEntries);
答案 2 :(得分:0)
您可以使用:
string temp= "IND|001;TWN|002;USA|003;LDN|;MYS|005;
IEnumerable<string> returnList = temp.Split(';')
.Where(g=>!String.IsNullOrEmpty(g))
.Select(c => c.Substring(0, c.IndexOf('|')) + c.Substring(c.IndexOf('|') + 1));
答案 3 :(得分:0)
var myString = "IND|001;TWN|002;USA|003;LDN|;MYS|005;";
var result = from sp in myString.Split(';')
let spr = sp.Split('|')
select string.Join(" ", spr);
string append = string.Empty;
foreach (var item in result)
{
append += item + "\n";
}
Console.WriteLine(append);