【问题标题】:How to unbox tuple?如何拆箱元组?
【发布时间】:2019-10-22 14:18:59
【问题描述】:

我有盒装元组:

(int, string) tuple = (1, "abc");
object box = tuple;

如何从box获取元组?将object 转换回元组的正确语法是什么?

我的尝试:

var deconstruct = (int, string)box;

显然是错误的:

错误 CS1525 无效的表达式术语 'int'

错误 CS1525 无效的表达式术语“字符串”

错误 CS1002 ;预计

错误 CS0201 只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句

【问题讨论】:

  • 你试过 (int, string) deconstruct = (int, string)box;
  • 强制转换的语法是(type) expr。元组的类型是(int, string)。尔格:((int, string)) box.
  • @JeroenMostert,在看到答案很明显之后,我不知何故被已经有一套护腕蒙蔽了。
  • 它不是最易读的语法,尽管它遵循逻辑模式——我们可以责怪 C 首先引入了强制转换语法(元组语法似乎很好)。

标签: c# tuples c#-7.0 unboxing


【解决方案1】:
ValueTuple<int, string> t = (ValueTuple<int, string>)box;

(int, string) t = ((int, string))box;

【讨论】:

  • 简单!一对用于元组,另一对用于演员表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
相关资源
最近更新 更多