以下的代码是MVC中 提取Request值 的一段代码
var routeData = new RouteValueDictionary ();
var rq = Request.QueryString;
foreach (var key in rq.Keys)
{
routeData[key] = rq[key];
}
请看代码。
var routeData = new RouteValueDictionary ();
实例化一次之后,直接就可以用
routeData[key] = rq[key];
设置值.
按一般的思想,值的不同,保存的变量要不同,以免值被重新赋值
例如
var a=1;
var b=2;
var c=3;
为什么有些变量就像Request、Session一样,直接可以用一个 [key] 来保存不同的值。
这种是怎么一个情况?
Session["value"] = value;
从HttpSessionState使用方法推测,其内部应该是通过pair<string,Object>来组织Key和Key所映射的对象的关系。
public sealed class HttpSessionState : ICollection,
IEnumerable
从HttpSessionState类型声明推测,其内部实现了一个collection来管理pair对象,且其保证了Key的唯一性。
从RouteValueDictionary 类型声明也印证了我以上的推测,请留意其继承了ICollection<KeyValuePair<string, Object>>。
public class RouteValueDictionary : IDictionary<string, Object>,
ICollection<KeyValuePair<string, Object>>, IEnumerable<KeyValuePair<string, Object>>,
IEnumerable
使用的的是值键对,一种数据结构。
没有太明白你说的意思
Dictionary
这些“变量”实际上是一种字典结构,像数组一样,可以保存多个值,
参考 MSDN Dictionary