加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何编写接受一系列匿名字典项的API?

发布时间:2020-12-16 01:40:16 所属栏目:百科 来源:网络整理
导读:我经常发现自己需要编写涉及键值对的API,当我使用它时,我最终会得到一个List KeyValuePair string,string或者类似的类型集合对象,它让我很容易编写操作. 我遇到的唯一缺点是向此收集添加多个项目通常会产生非常嘈杂的代码块,例如 MyDictionary.Put(new KeyVa
我经常发现自己需要编写涉及键值对的API,当我使用它时,我最终会得到一个List< KeyValuePair< string,string>>或者类似的类型集合对象,它让我很容易编写操作.

我遇到的唯一缺点是向此收集添加多个项目通常会产生非常嘈杂的代码块,例如

MyDictionary.Put(new KeyValuePair<string,string>("a","1"),new KeyValuePair<string,string>("b","2"),string>("c","3"))

我宁愿能做到

MyDictionary.Put( {"a","1"},{"b","2"},{"c","3"})

有几次我试图完成并总是绊倒C#所期望的语法.

解决方法

集合初始化程序允许大部分内容;

var data = new Dictionary<string,string> {
    {"a","3"}
};

另一种方法是将对象传递给一个使用反射,传递(例如):

new { a = "1",b = "2",c = "3" }

最后一个选项的一个很好的功能是你也可以传入你的域实体,你可以使用更丰富的元数据(属性等) – 但是当用于高容量反射本身时可能会很慢,除非你采取措施优化它.如果你没有在紧凑的循环中使用它,即使使用反射(并且没有优化)也应该没问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读