我有点卡在这里了。我有一个复杂的API,它是由第三方设计的,用于使用自定义搜索条件检索用户和业务数据。搜索条件语法和格式是不相关的,但我必须传递多个键和相应的值。我需要帮助来创建这个函数。
目前在我的界面中有这个函数:
Response GetUser(
List<string> keys,
List<string> values,
List<string> fieldsToReturn= null
);
传递多个键和值的最好方法是什么,它们可以被绑定/映射在一起?作为一个参数?键和值必须以1:1匹配。Value是与对应键绑定的搜索值。
我已经对当前的设置进行了很好的验证,它可以正常工作,但我正在重新考虑并希望将键和值一起传递,以避免太多不可预见的输入验证问题。
你可以使用字典:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("key1", "value1");
dict.Add("key2", "value2");
dict["key1"] // this will get you "value1"
这样每个键只对应一个值。
像这样传递给函数
Response GetUser(
Dictionary<string, string> dict,
List<string> fieldsToReturn= null
);
我将使用值元组语法
GetUser(IEnumerable<(string Key, string Value)> keyValues)
这保证了键值之间的匹配。我认为它也更好地传达了这一点,即它不像字典那样用于查找。