对于下面对Test2()
的调用,无论如何都要缩短它以省略明确的输入?
class Program
{
static void Main(string[] args)
{
Test(("a", (1, "b")));
Test2(new Dictionary<string, (int, string)>()
{ {"a", (1, "b") } });
}
static void Test((string, (int, string)) data)
{
}
static void Test2(Dictionary<string, (int, string)> data)
{
}
}
在C#中,您定义的构造可以适合多种类型,因此无法推断它是指Dictionary。
下面,我使用params关键字接受您指定的元组类型的数组,然后从中创建一个字典以调用需要Dictionary的方法。
private static void Main(string[] args)
{
Test(("a", (1, "b")));
TestWrap(
("a", (1, "b")),
("b", (3, "c"))
);
}
private static void Test((string, (int, string)) data)
{
}
private static void TestWrap(params (string, (int, string))[] data)
{
Test2(data.ToDictionary(v => v.Item1, v => v.Item2));
}
private static void Test2(Dictionary<string, (int, string)> data)
{
}