按字符串数组拆分字符串并保留分隔符

时间:2011-02-20 23:22:30

标签: c# string

我有这样的事情:

  string[] names= {"john","joe", "jim"};
  data="john,4,3,6,joe,3,6,2,jim,3,6,7";
  string[] results=data.Split(names,StringSplitOptions.RemoveEmptyEntries);

这给出了:

 ,4,3,6

 ,3,6,2

 ,3,6,7

但我希望名字也在结果数组中。

3 个答案:

答案 0 :(得分:6)

如何在最后添加此行:

results = results.Select((x, i) => names[i] + x).ToArray();

这将在每个条目前面添加名称,输出:

  

约翰,4,3,6
  乔,3,6,2
  吉姆,3,6,7

答案 1 :(得分:3)

您可以保留原始代码,然后输入名称:

string[] names= new [] {"john","joe", "jim" };
string data="john,4,3,6,joe,3,6,2,jim,3,6,7";
string[] results = data.Split(names, StringSplitOptions.RemoveEmptyEntries)
                       .Zip(names, (values, name) => name + values)
                       .ToArray();

答案 2 :(得分:1)

当我查看样本时,最明智的方法似乎是将“数据”拆分为“,”然后重新分组。如果总是有4个组,则非常容易。