c# - 如何将 NameValueCollection 转换为 IEnumerable> 表单值?
问题描述
有人可以解释我如何转换此 NameValueCollection 中的数据以便能够调用下面的函数吗?
string ResponseHash = CalculateHash(Request.Form); // What to do here? Request.Form is a NameValueCollection
private string CalculateHash(IEnumerable<KeyValuePair<string, StringValues>> FormValues)
{
}
解决方案
您可以使用这样的扩展方法:
public static class NameValueCollectionExtensions{
public static IEnumerable<KeyValuePair<string, StringValues>> AsEnumerable(this NameValueCollection query)
{
return query?.Cast<string>().Select((s, ix) => new KeyValuePair<string, StringValues>(s, query[ix]))
?? Enumerable.Empty<KeyValuePair<string, StringValues>>();
}
}
现在您应该能够以这种方式使用它:
string ResponseHash = CalculateHash(Request.Form.AsEnumerable());
推荐阅读
- javascript - Puppeteer 删除 DOM 元素和子元素并释放内存
- google-workspace - 如何在 StackDriver 中查看 GoogleDrive 的更改
- excel - 如何根据另一列中的所有单元格超过 0 来获得一列的总数
- javascript - 一次将多行中的html表行数据发布到django模型
- php - 如何在php中过滤字符串
- mongodb - 使用 mongo 命令创建 MongoDB 数据库
- hibernate - 从 JPA2.0 迁移到 JPA 2.1 时出现“不支持使用 GenericConnection”异常
- javascript - Vue:仅在创建组件时才导入 SCSS
- reactjs - 在 react 中使用 webpack 查看 img 标签内的图像正在返回一个 object%20 模块
- c - fscanf 从输入中读取不匹配的格式