将 HttpRequest.QueryString 转换为 object[]
本文关键字:object 转换 HttpRequest QueryString | 更新日期: 2023-09-27 18:34:54
我正在尝试使用以下扩展方法将 HttpRequest.QueryString 转换为object[]
:
public static object[] ToObjectArray(this NameValueCollection nvc)
{
var ret = new object[nvc.Count];
var count = 0;
foreach (string s in nvc)
{
var strings = nvc.GetValues(s);
if (strings != null)
{
foreach (string v in strings)
{
ret[count] = new { s = v };
}
}
count++;
}
return ret;
}
var args = request.QueryString.ToObjectArray();
我认为我已经非常接近了,但是我遇到了以下异常:
Object of type '<>f__AnonymousType0`1[System.String]'
cannot be converted to type 'System.Object[]'.
我错过了什么?
你不需要
将 v 转换为新对象,字符串已经是一个对象,所以你可以做:
ret[count] = v;
这是一个稍微短一点的方法,使用列表来避免跟上数组索引。
public static object[] ToObjectArray(this NameValueCollection nvc) {
List<object> results = new List<object>();
foreach (string key in nvc.Keys) {
results.Add(nvc.GetValues(key));
}
return results.ToArray();
}