对于我的应用程序(用于管理客户的某些数据),我有一个public static class Util
,我存储了在各种地方使用的数据。在这个课程中,我有以下变量:
public static readonly List<string> PUBLICSALESMANAGERS = new List<string> { "aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee" };
这是每个案例中相同的人员列表。然后,根据您尝试管理的客户,需要将该客户的销售经理添加到列表中。
在我的一个控制器中,我在一些操作中有以下几行代码:
List<string> salesManagers = Util.PUBLICSALESMANAGERS;
salesManagers.Insert(0, customer.SalesManager);
ViewBag.salesManagers = salesManagers;
出于某种原因,每次运行此代码时,插入似乎都在更新Util.PUBLICSALESMANAGERS
变量。因此,列表在每个请求上都会变得越来越长,但情况并非如此。
有没有人可以帮我这个? 提前谢谢!
修改
避免尝试并避免混淆一个如何工作的例子:
当我加载客户x时,它有销售经理&#34; sssss&#34;。我的列表现在应该是:"sssss", "aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"
。
然后我加载客户y,其中有销售经理&#34; mmmmm&#34;我希望我的列表看起来像:"mmmmm", "aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"
等等......
答案 0 :(得分:0)
List(T).Insert(Int32,T)
在第一个参数指定的位置插入一个项目。它不会被覆盖。你想要的是像
if (!salesManagers.Contains(customer.SalesManager))
salesManagers.Insert(0, customer.SalesManager);
更新:在澄清问题之后,要做的就是创建Util.PUBLICSALESMANAGERS
列表的副本并修改它。
new List(Util.PUBLICSALESMANAGERS)