我有这样的事情:
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
但我希望名字也在结果数组中。
答案 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个组,则非常容易。