如何使用LINQ拆分字符串

时间:2014-04-14 06:38:29

标签: c# linq

我使用字符串存储国家/地区代码及其成本中心代码值。我希望通过使用LINQ查询来解除字符串和;字符。 srting是

IND|001;TWN|002;USA|003;LDN|;MYS|005;

请帮我用LINQ

分发字符串值

4 个答案:

答案 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);