Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET缓存-什么';s直接赋值与Add()或Insert()之间的区别_C#_Asp.net_Caching - Fatal编程技术网

C# ASP.NET缓存-什么';s直接赋值与Add()或Insert()之间的区别

C# ASP.NET缓存-什么';s直接赋值与Add()或Insert()之间的区别,c#,asp.net,caching,C#,Asp.net,Caching,我试图理解这两个项目之间的区别,以及哪一个(如果有的话)是“正确”的方法 我想向缓存中添加一个对象。例如: List<String> list = new List<String>(); list.Add("Monday"); list.Add("Tuesday"); list.Add("Wednesday"); list.Add("Thursday"); 或者我可以这样做吗 System.Web.HttpContext.Current.Cache["DaysOfThe

我试图理解这两个项目之间的区别,以及哪一个(如果有的话)是“正确”的方法

我想向缓存中添加一个对象。例如:

List<String> list = new List<String>();
list.Add("Monday");
list.Add("Tuesday");
list.Add("Wednesday");
list.Add("Thursday");
或者我可以这样做吗

System.Web.HttpContext.Current.Cache["DaysOfTheWeek"] = list;
我两个都做过,而且效果很好。我想知道这是否会随着规模的扩大而扩大,或者是否会产生我无法预见的后果


这是在C#,ASP.NET4.5中,没有区别。使用索引器(第二个示例)只需调用
Insert
。您可以在以下列表中看到:

Add
Insert
的不同之处在于,如果密钥已经存在,
Add
不会覆盖缓存中的值-
Insert
将替换已经缓存的值。这在以下文件中提到:

如果缓存中已存储具有相同键参数的项,则对此方法的调用将失败。要使用相同的键参数覆盖现有缓存项,请使用Insert方法


哇,谢谢你的参考资料!这真方便!
System.Web.HttpContext.Current.Cache["DaysOfTheWeek"] = list;
    public object this[string key] {
        get {
            return Get(key);
        }

        set {
            Insert(key, value);
        }
    }