gpt4 book ai didi

c# - 如何正确解析 Dictionary

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:05 27 4
gpt4 key购买 nike

我正在研究 HtmlHelper.AnonymousObjectToHtmlAttributes

它适用于匿名对象:

var test = new {@class = "aaa", placeholder = "bbb"};
var parseTest= HtmlHelper.AnonymousObjectToHtmlAttributes(test);

结果 parseTest 有两个键值对。

但是对于 Dictionary 对象:

var attrsInDict = new Dictionary<string,object>() {            
{"class", "form-control"},
{"placeholder", "Select one..."}
};
var attrs = HtmlHelper.AnonymousObjectToHtmlAttributes(attrsInDict );

得到的attrs是一个奇怪的对象,有4个Keys和4个Values。 4 个键分别是ComparerCountKeysValues

其他一些 SO 帖子询问两者之间的区别(here)。所选答案说

There's not too much difference...

真的吗?解析 attrsInDict 并获得与我们从匿名对象获得的结果相同的结果的正确方法是什么?

因为,我打算在下面的代码中合并属性:

var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
foreach (var item in attrs)
{
if (attr.ContainsKey(item.Key))
{
attr[item.Key] = $"{attr[item.Key]} {item.Value}";
}
else
{
attr.Add(item.Key, item.Value);
}
}

最佳答案

结果并不奇怪——它们正是我对名为 AnonymousObjectToHtmlAttributes 的方法所期望的结果.该方法需要像 test 这样的输入,一个实际的匿名对象,而不是像 Dictionary 这样的具体类的实例.

您在传递 Dictionary 的实例时看到的情况是它的公共(public)属性,确实是Comparer , Count , Keys , 和 Values属性。

AnonymousObjectToHtmlAttributes 的返回类型是RouteValueDictionary .该类具有接受 IDictionary<string, object> 的构造函数重载.

要正确使用字典,请执行以下操作:

var attrs = new RouteValueDictionary(attrsInDict);

关于c# - 如何正确解析 Dictionary<string, object> 成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36991212/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com