如何在C#中填充元组?

时间:2017-08-20 15:13:24

标签: c# c#-4.0

我得到了元组:

:gen_tcp.listen(port, [packet: :line, buffer: 1024])

我尝试使用 private Tuple<double, double, int>[] circle; 方法添加和元素。但是不存在。

如何在元组数组中添加元素?

2 个答案:

答案 0 :(得分:3)

忘记元组一秒钟。你如何填写任何数组?

private int[] _numbers; // now what?

答案是C#中的数组具有不可变的大小 - 它们必须在初始化期间分配,这就是它们具有的大小。初始化它们之后,可以通过索引为数组成员分配值:

_numbers = new int[5];
_numbers[0] = 5;
circle = new Tuple<double,double,int>[5];
circle[0] = new Tuple<double,double,int>(1.0, 2.0, 3);

如果你是从另一种语言进来并期望可以添加一个可变长度的数组,你要找的是.NET的List<T>类,它可以初始化为空,并且有成员添加和删除。

private List<Tuple<double,double,int>> circle;
circle = new List<Tuple<double,double,int>>();
circle.Add(new Tuple<double,double,int>(3.0, 2.0, 1));

答案 1 :(得分:1)

你不能将元素添加到元组数组(或者其他任何东西的数组),但你有很多选项来创建元组数组:

  • 您可以创建固定大小的数组,然后稍后填充它,或者
  • 您可以创建固定大小的数组,并立即填充,或
  • 您可以创建List,向其中添加项目,并在完成向其添加元素后将其转换为数组。

第三种选择是最灵活的。这是它的外观:

var list = new List<Tuple<double,double,int>>();
list.Add(Tuple.Create(1.5, 1.7, 9));
list.Add(Tuple.Create(2.6, 3.8, 11));
circle = list.ToArray();