C# 如何在Asp.Net中从会话中删除值

C# 如何在Asp.Net中从会话中删除值,c#,C#,我有会话[“ID”]=“1,2,3,4,5” 如何从会话中删除单个值(2或任意值)?这很难看,但您可以尝试以下操作: var numberToRemove = 3 var result = Session["ID"] .Replace(numberToRemove.ToString(), string.Empty) .Replace(",,",",") .Trim(','); Session["ID"] = result; 或 可以使用分隔符拆分字符串,删除项目,然后使

我有
会话[“ID”]=“1,2,3,4,5”


如何从会话中删除单个值(2或任意值)?

这很难看,但您可以尝试以下操作:

var numberToRemove = 3
var result = Session["ID"]
    .Replace(numberToRemove.ToString(), string.Empty)
    .Replace(",,",",")
    .Trim(',');
Session["ID"] = result;


可以使用分隔符拆分字符串,删除项目,然后使用分隔符连接其余字符串

        var sessionIds = Session["ID"].Split(',').ToList();
        sessionIds.Remove("1");
        sessionIds.Remove("5");
        Session["ID"] = string.Join(",", sessionIds);

如果要删除第一个值,可以使用

var s = "1,2,3,4,5";
var result = string.Join(",", s.Split(',').Skip(1).ToList());
Console.WriteLine(result); // 2,3,4,5
如果要删除最后一个值

var s = "1,2,3,4,5";
var lastValue = s.Split(',')[s.Split(',').Length - 1];
var result = string.Join(",", s.Split(',').TakeWhile(c => !string.Equals(c, lastValue)).ToList());
Console.WriteLine(result); // 1,2,3,4

您可以为此使用正则表达式:

Session["ID"] = Regex.Replace(Session["ID"], "[15],|,[15]$", string.Empty);
可能每个冒号后面都有空格:

Session["ID"] = Regex.Replace(Session["ID"], "\s*[15],|,\s*[15]$", string.Empty);

张贴你迄今为止所做的尝试。另外,试着改写问题,这样我就可以理解了。如果你得到了答案,请把问题改成回答
Session["ID"] = Regex.Replace(Session["ID"], "\s*[15],|,\s*[15]$", string.Empty);
string GetID = txtID.text;
var sessionIds = Session["ID"].ToString().Split(',').ToList();
sessionIds.Remove(GetID);
Session["ID"] = string.Join(",", sessionIds);