C# 为什么需要将值传递给元组构造函数?

C# 为什么需要将值传递给元组构造函数?,c#,tuples,C#,Tuples,为什么这是可能的 var x=新元组(1,1,2,“点”,“净”,“perls”) 但这不是: var x2=新元组() 我需要一个元素作为int的列表 我得到的错误是: 错误CS7036给定的参数没有对应于“Tuple,int,int,string,string,>string>.Tuple(List,int,int,string,string)”的必需>形式参数“item1”的参数 第二个元组声明也是有效的 实际上无效的是,元组有6个参数,但没有向构造函数传递任何参数 解决方法是像在第一个示

为什么这是可能的
var x=新元组(1,1,2,“点”,“净”,“perls”)
但这不是:
var x2=新元组()

我需要一个元素作为int的列表

我得到的错误是:

错误CS7036给定的参数没有对应于“Tuple,int,int,string,string,>string>.Tuple(List,int,int,string,string)”的必需>形式参数“item1”的参数


第二个元组声明也是有效的

实际上无效的是,元组有6个参数,但没有向构造函数传递任何参数


解决方法是像在第一个示例中那样提供必要的参数。

因为正如消息所说,您没有为第一个参数提供任何列表(实际上您也没有提供其他参数)

List thisIsAList=新列表{1,2,3};
var x=新元组(thisIsAList,1,2,“点”,“净”,“perls”);

您必须像在第一个示例中那样,将项目传递给构造函数。正如错误消息所说。
List<int> thisIsAList = new List<int>{1,2,3};
var x = new Tuple<List<int>, int, int, string, string, string>(thisIsAList, 1, 2, "dot", "net", "perls");