在一个函数中传递多个键和值的最佳方法?



我有点卡在这里了。我有一个复杂的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)

这保证了键值之间的匹配。我认为它也更好地传达了这一点,即它不像字典那样用于查找。

最新更新