如何使用LINQ拆分字符串



我正在使用一个字符串来存储国家/地区代码及其成本中心代码值。我想用LINQ查询|和;字符。srting是

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

请帮助我使用LINQ 拆分字符串值

我假设您需要一个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

而不是LINQ使用String.Split

string s = "IND|001;TWN|002;USA|003;LDN|;MYS|005;";
string[] splitData = s.Split(new string[] { "|", ";" }, StringSplitOptions.RemoveEmptyEntries);

您可以使用这个:

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

相关内容

  • 没有找到相关文章