Хорошо, это немного странно, но работает.
Итак, сначала вы разбили свою строку на части, основываясь на символе "
:
string msg = "this string should have a comma here,\"but, there should be no comma in this bit\", and there should be a comma back at that and";
var parts = msg.Split('"');
тогда вам нужно соединить строку обратно вместе с символом "
, после удаления каждой запятой в каждой другой части:
string result = string.Join("\"", RemoveCommaFromEveryOther(parts));
Функция удаления выглядит следующим образом:
IEnumerable<string> RemoveCommaFromEveryOther(IEnumerable<string> parts)
{
using (var partenum = parts.GetEnumerator())
{
bool replace = false;
while (partenum.MoveNext())
{
if(replace)
{
yield return partenum.Current.Replace(",","");
replace = false;
}
else
{
yield return partenum.Current;
replace = true;
}
}
}
}
Требуется, чтобы вы включили директиву использования для System.Collections.Generic
.