gpt4 book ai didi

c# - 将字典中的值分配给动态对象 C#

转载 作者:行者123 更新时间:2023-11-30 21:43:10 26 4
gpt4 key购买 nike

有一个带有值的字典。它需要将每个值分配给动态实例属性。并且动态变量属性的名称应该与字典的键相同。像这样:

dynamic response = new ExpandoObject();
var dict = new Dictionary<string, string>();
string s;
dict.TryGetValue("Name", out s); // imagine dictionary contains some data
response.Name = s;
dict.TryGetValue("Street", out s);
response.Street = s;
....

我确信有比迭代每个值更有效的方法。如果创建for循环,每次如何描述动态实例属性名?谢谢。

最佳答案

ExpandoObject工具 IDictionary<string, object>因为这就是它存储“属性”值的方式,所以您可以这样做:

var response = new ExpandoObject();
var dict = new Dictionary<string, string>();
// imagine dict contains some data
foreach(var kvp in dict)
{
(response as IDictionary<string, object>)[kvp.Key] = kvp.Value;
}

请注意,我不使用 dynamic在这里,因为您没有访问 ExpandoObject的属性动态。它在隔离方面可能不会产生巨大差异,但如果您经常使用此方法,它可能会提高整体性能,因为索引器将在编译时而不是在运行时绑定(bind)。

关于c# - 将字典中的值分配给动态对象 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41960723/

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