【发布时间】:2015-02-11 21:24:36
【问题描述】:
设置: 我有一个会话变量,它带有一个以管道分隔的 ID 列表。这些 ID 与我网站中的视图相关,并且与面包屑生成器相关。
Session["breadCrumb"] = "1001|1002|1003|1004";
如果我在对应于 1002 的视图上,我想从会话变量中删除该 id 之后的所有内容。
我想使用类似的东西:
var curView = "1002";
if (Session["breadCrumb"] != null) {
var crumb = Session["breadCrumb"].ToString().Split('|').ToList();
var viewExists = crumb.Any(c => c.Value == curView);
if (viewExists) {
//remove everything after that item in the array.
}
}
但我对方法持开放态度。
【问题讨论】:
-
为什么不在 curView 上拆分,然后在分隔符上拆分? (只取拆分结果的第 0 个元素)
-
@TetsujinnoOni:因为如果
curView只是"1"会发生什么? -
我接受 OP 的示例作为上下文并足以识别可能的范围。毕竟,我的第一直觉是不要将整数列表存储为管道分隔列表......
-
@TetsujinnoOni:我也是。但是为什么要做出非强制性的假设呢?
-
我对其他方法完全持开放态度。我必须承认我不确定如何在会话中存储/访问列表。