首页 > 解决方案 > 如何将集合转换为值元组?

问题描述

目的是从集合动态创建 valueTuple。在此集合中,值可能是不同的类型。创建的 ValueTuple 将具有相同的值类型。

  IList<object> tupleElements = new List<object>();
  tupleElements.Add(16);
  tupleElements.Add("any string");
  var vt1 = ValueTuple.Create(tupleElements[0], tupleElements[1]);
  var vt2 = ValueTuple.Create(16, "any string");
  

从调试信息来看,这两个 valueTuples 包含相同的值。但是,类型不同。vt1 是对象,对象。vt2 是整数,字符串。

在此处输入图像描述

如何使 vt1 也是 (int, string) 类型?

我不能使用创建 vt2 的方式,因为集合中的元素类型每次都不同。下一步,列表中的元素可能是 1, "any string", 2, 3, "other string"。此时,ValueTuple 将是 (int, string, int, int, string) 而不是 (object,object,object, object, object)。

欢迎任何建议!谢谢!

标签: c#.netvaluetuple

解决方案


推荐阅读