如何解构 C# 7 中的参数值元组?

How can I Deconstruct Value Tuples that are out parameters in C# 7?

鉴于以下情况:

var dic = new Dictionary<string, (int, int)>()
{
    ["A"] = (1, 2)
};

dic.TryGetValue("A", out (int, int) value);

我可以很容易地从字典中得到 value,但是我怎样才能解构它来得到每个单独的值,就像这样:

dic.TryGetValue("A", out var (left, right));

dic.TryGetValue("A", out var (left, right));

尚不支持此语法,以后可能添加。 reference


你可以像这样给元组元素命名。

if(dic.TryGetValue("A", out (int left, int right) t))
{
    var (left, right) = (t.left, t.right);

    // use (left, right) or directly use (t.left, t.right)
}

我想不出更短的语法,这只是时间问题。 c#7 比以前发展得更快,所以你只需要等待。