是否可以使用linq替换每个连续的重复项?我尝试使用小组没有成功。基本上,我需要得到以下结果:
string[] arr = new [] { "a", "a", "a", "b", "b", "b", "b", "c", "c", "c", "a", "a" }; // input
string[] res = new [] { "a", "R", "R", "b", "R", "R", "R", "c", "R", "R", "a", "R" }; // output
Run Code Online (Sandbox Code Playgroud)
Select 方法有一个需要使用索引的重载,您可以使用它来检查上一个项目:
res = arr.Select((x, idx) => idx != 0 && arr[idx - 1] == x ? "R" : x).ToArray();
Run Code Online (Sandbox Code Playgroud)