c# - 定义一个不区分大小写的字典作为控制器方法参数
问题描述
是否可以为IEqualityComparer<TKey>
用作控制器内方法输入的字典定义一个?
现在我最好的“解决方案”是创建一个新字典并将数据复制到过滤器中。
public IActionResult DoStuff([FromBody] IDictionary<string, object> data)
{
//do stuff with Case-Insentive dictionary here
return StatusCode(200);
}
解决方案
对于不区分大小写的字典,您可以尝试实现自己的字典,例如
public class CaseInSensitiveDictionary<TValue> : Dictionary<string, TValue>
{
public CaseInSensitiveDictionary():base(StringComparer.OrdinalIgnoreCase)
{
}
}
接着
[HttpPost]
public IActionResult DoStuff([FromBody] CaseInSensitiveDictionary<object> data)
{
var t1 = data["t1"];
var T1 = data["T1"];
//do stuff with Case-Insentive dictionary here
return StatusCode(200);
}
推荐阅读
- validation - 关于 AEM 表单验证的文件不明确
- c# - 如果需要,HTML 敏捷包用 UL 包装 LI 项目
- c - 在linux上用C打开文件时出现问题
- asp.net-mvc - 如何将模型中的数据显示到剃须刀页面
- isabelle - 在 Isabelle 中使用 simprocs 重写正弦
- azure-cosmosdb - CosmosDB Gremlin - 过滤没有特定类型边缘的节点
- javascript - safari 上没有声音按钮
- angular - 如何以编程方式更改下拉值
- amazon-web-services - 将 CORS 标头从 AWS Lambda 发送到网关会阻止我的 Lambda 函数正确执行
- scala - spark Scala RDD 到 DataFrame 日期格式