通过httpcache c#进行循环
本文关键字:循环 httpcache 通过 | 更新日期: 2023-09-27 18:15:14
VB。我可以做这样的事情来写出缓存中的所有键:
Dim oc As HttpContext = HttpContext.Current
For Each c As Object In oc.Cache
oc.Response.Write(c.Key.ToString())
Next
虽然。key在智能感知中没有出现,但代码工作得很好。
我如何在c#中做同样的事情?
HttpContext oc = HttpContext.Current;
foreach (object c in oc.Cache)
{
oc.Response.Write(c.key.ToString());
}
它不喜欢。键。一些。我有点不知所措。你知道怎么用这种方式访问密钥吗?
几乎正确——它是大写的K
,而不是小写的Key
。c#是区分大小写的
另外,object
没有Key
成员。在c#中,你也可以通过var
关键字使用隐式类型推断。如果底层推断类型具有Key
成员,则此操作有效:
HttpContext oc = HttpContext.Current;
foreach (var c in oc.Cache)
{
oc.Response.Write(c.Key.ToString());
}
在本例中,Cache
没有Key
成员,因此需要更深入地挖掘,使用Cache
的GetEnumerator
方法返回的IDictionaryEnumerator
:
HttpContext oc = HttpContext.Current;
IDictionaryEnumerator en = oc.Cache.GetEnumerator();
while(en.MoveNext())
{
oc.Response.Write(en.Key.ToString());
}
下面的代码snap工作正常:
HttpContext oc = HttpContext.Current;
foreach (var c in oc.Cache)
{
oc.Response.Write(((DictionaryEntry)c).Key.ToString());
}
感谢您的宝贵时间