[英]How Remove values from Session in Asp.Net
我有Session["ID"]="1,2,3,4,5"
。
如何从会话中删除单个值(2 或任何)?
如果你想删除第一个值,你可以使用;
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
它丑陋,但您可以尝试以下操作:
var numberToRemove = 3
var result = Session["ID"]
.Replace(numberToRemove.ToString(), string.Empty)
.Replace(",,",",")
.Trim(',');
Session["ID"] = result;
或者
var result2 = Session["ID"]
.Split(',')
.Where(s => s != numberToRemove.ToString())
.Aggregate((s1, s2) => s1 += "," + s2);
您可以使用分隔符拆分字符串删除项目,然后使用分隔符连接剩余的字符串
var sessionIds = Session["ID"].Split(',').ToList();
sessionIds.Remove("1");
sessionIds.Remove("5");
Session["ID"] = string.Join(",", sessionIds);
您可以使用正则表达式:
Session["ID"] = Regex.Replace(Session["ID"], "[15],|,[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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.