Tengo una cadena y quiero dividir la cadena después de cada segunda coma. ¿Es esto factible usando cadena dividida en C#?
Cadena de ejemplo:
"This,is,an, example,for,the,stackoverflow,community"Salida deseada
This,is an,example for,the stackoverflow,communityCualquier ayuda sería muy apreciada gracias!
También puede usar un patrón para hacer coincidir 1 o más caracteres excepto una coma usando una clase de carácter negado [^,]+ antes y después de la coma:
string pattern = @"[^,]+,[^,]+"; string input = "This,is,an, example,for,the,stackoverflow,community"; foreach (Match m in Regex.Matches(input, pattern)) { Console.WriteLine(m.Value); }Producción
This,is an, example for,the stackoverflow,communityPodrías hacer algo como esto:
var s = "This,is,an, example,for, the, stackoverflow, community"; var a = ("," + s + ",").Split(','); // requires using System.Linq; var b = Enumerable.Range(0, a.Length / 2) .Select(i => $"{a[2 * i]}, {a[2 * i + 1]}".Trim(',', ' ')); Range enumera la matriz resultante y calcula las concatenaciones de los pares de cadenas correspondientes.
Con Enumerable.Chunk de .NET 6, puede
"," , string input = "This,is,an,example,for,the,stackoverflow,community"; var output = input.Split(",") .Chunk(2) .Select(chunk => string.Join(",", chunk)); foreach (string s in output) Console.WriteLine(s);Si está atascado con el .NET Framework "clásico", aquí hay implementaciones de fragmentos para .NET < 6: