【发布时间】:2018-09-27 08:33:33
【问题描述】:
我正在为第三方的 Web 服务编写一个包装器。界面如下:
public System.Data.DataSet GetXxxx(string functionName, object[][] parameters)
一些functionNames 不使用参数,其中一些使用一个,其中一些更多,就像这样(来自他们的文档):
parameters[0][0]: @key_one
parameters[0][1]: value for @key_one
parameters[1][0]: @key_two
parameters[1][1]: value for @key_two
为了概括包装器,我正在考虑传递Hashtable 或Dictionary<string, object>,并在包装器内动态创建parameters[][]。
我该怎么做?
更新:实际上,参数对必须保持顺序。做,我必须将界面更改为:
using ListOfParamPairs = List<KeyValuePair<string, object>>;
...
public static DataSet GetXxxx(string functionName, ListOfParamPairs parameters)
{
...
}
【问题讨论】:
-
如果我理解你的话;给
var dictionary = parameters.ToDictionary(line => line[0].ToString(), line => line[1]);?返回:object[][] parameters = dictionary.Select(pair => new object[] {pair.Jey, pair.Value}).ToArray(); -
Dictionary<K, V>没有有任何订单。如果参数的顺序很重要,是的,你必须切换到List<KeyValue<K, V>>或类似的
标签: c# arrays dictionary