C# 在C中从逗号分隔的字符串中删除值#

C# 在C中从逗号分隔的字符串中删除值#,c#,linq,C#,Linq,我做过类似的事情: var a = "77,82,83"; foreach (var group in a.Split(',')) { a = group.Replace("83", string.Empty); } 若我想删除83,但覆盖上次更新的值,并使输出为空,或删除传递给replace的值 e、 gvar a=77,82,83 想要像77,82那样的输出 编辑: “83”可以位于任何位置。如果希望以字符串形式输出,则无需拆分。只需获取,字符并对变量执行以下操作: var a =

我做过类似的事情:

var a = "77,82,83";
foreach (var group in a.Split(','))
{
    a = group.Replace("83", string.Empty);
}
若我想删除83,但覆盖上次更新的值,并使输出为空,或删除传递给replace的值

e、 g
var a=77,82,83
想要像
77,82那样的输出

编辑


“83”可以位于任何位置。

如果希望以字符串形式输出,则无需拆分
。只需获取
字符并对变量执行以下操作:

var a = "77,82,83";
var newString = a.Substring(0, a.LastIndexOf(',')); // 77,82
如果不确定该字符串是否至少有一个
,则可以在执行
子字符串之前进行验证:

var a = "77,82,83";
var lastIndex = a.LastIndexOf(',');

if (lastIndex > 0)
    var newString = a.Substring(0, lastIndex);
更新

如果要从任何位置删除特定值:

拆分
字符串
->使用
删除值,其中
->使用
分隔符将它们连接起来

a = string.Join(",", a.Split(',').Where(i => i != "83"));

这里有一个

你可能需要稍微澄清一下这个问题,但我认为你要求的是:

var a = "72,82,83";
var group = a.Split(',').ToList();
int position = group.FindIndex(p => p.Contains("83"));
group.RemoveAt(position);
您可以将在Contains查询中查找的项设置为参数


我认为您的原始代码存在的问题是,
foreach
是数组中每个项目的循环,因此您试图在每次传递时删除“83”。

您是否总是希望删除最后一个项目,或者您是否希望像“77,83”这样删除82个项目的输出?您好@adiga谢谢。如果我知道这83在两者之间呢?比如a=“77,83,82”??那我该怎么办?我只想删除字符串中任何位置的值。@KajalSawant为任何位置更新