c# - 无法将元组添加到列表
问题描述
我有一个元组列表,无法将它们添加到列表中。是什么导致了这个编译错误?https://dotnetfiddle.net/vhR3vP
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
List<Tuple<string,string,string,string,string,string,string,string>> ExecutionsDetailsTuple =new List<Tuple<string,string,string,string,string,string,string,string>>(); // format executionid, symbol, quantity, price, tradedirection, orderaction, account, executiontime
var person= Tuple.Create<string,string,string,string,string,string,string,string>("1","2","3","4","5","6","7","8");
ExecutionsDetailsTuple.Add(person);
}
}
编译错误:
Compilation error (line 10, col 3): The best overloaded method match for 'System.Collections.Generic.List<System.Tuple<string,string,string,string,string,string,string,string>>.Add(System.Tuple<string,string,string,string,string,string,string,string>)' has some invalid arguments
Compilation error (line 10, col 30): Argument 1: cannot convert from 'System.Tuple<string,string,string,string,string,string,string,System.Tuple<string>>' to 'System.Tuple<string,string,string,string,string,string,string,string>'
解决方案
带有八个参数的返回类型Tuple.Create<>
定义为:
Tuple<T1,T2,T3,T4,T5,T6,T7,Tuple<T8>>
注意Tuple<T8>
最后的。您认为您会Tuple<T1,T2,T3,T4,T5,T6,T7,T8>
使用该方法创建一个实例Tuple.Create()
,但事实并非如此。
由于Tuple
类的泛型参数数量限制为 8 个,但可能需要超过 8 个值,因此类被设计为第 8 个泛型参数必须是Tuple
类型。所以一般结构将是:七个值加上Tuple
剩余值的附加值。假设您要创建一个包含 25 个值的元组,您将构建一个包含四个Tuple
实例 (7+7+7+4) 的链。
当您想使用包含八个值的元组时,您必须将变量的类型更改为List<Tuple<string,string,string,string,string,string,string,Tuple<string>>>
.
推荐阅读
- css - 禁用/启用时输入背景颜色变化
- google-apps-script - 获取 Google 表格脚本以自动重复相同的步骤
- python - 如何使用类中的方法正确循环部分代码?
- powerbi - 是否有“立即刷新”选项将 onedrive pbix 文件更改同步到工作区而不是等待 1 小时?
- angularjs - AngularJS 表列搜索...更聪明的想法?
- r - 向 ggplot 添加第二个 y 轴
- android - 如何在颤动中禁用 RadioListTile 小部件
- c++ - 窗口在更改其形状时不会更新
- python - 在 Python 中使用一维数据绘制 4D 曲面图
- c# - gdi+ - Graphics.MeasureString 太宽或太窄