【发布时间】:2020-05-04 09:30:51
【问题描述】:
我有以下链表:
private LinkedList<Tuple<string, string>> textList =
new LinkedList<Tuple<string, string>> ();
链表由未知数量的个元素组成。
我想把这个链表转换成一个元组数组。我尝试使用CopyTo() 方法:
Tuple<string, string>[] array;
textList.CopyTo(array, 0);
但这似乎不起作用,这里我得到 运行时错误:
使用未签名的局部变量'array'
我使用的是正确的方法还是有其他方法可以做到这一点?
【问题讨论】:
-
Linq?
Tuple<string, string>[] array = textList.ToArray(); -
您当前的
CopyTo方法不起作用,因为您从未实例化要复制到的数组。您需要做Tuple<string, string>[] array = new Tuple<string, string>[size],这意味着知道阵列必须预先设置多大。正如@DmitryBychenko 建议的那样,使用ToArray更容易 -
还要注意
LinkedList和Tuple可能都不应该使用。通常使用 ValueTuple 比使用Tuple更好,而LinkedList实际上比替代方案更好的情况很少 -
ValueTuple 与常规 Tuple 有何区别?我选择链接列表是因为我希望能够在恒定时间内为未知数量的元素添加元素。
-
好的,谢谢你,我可能也会使用 List
进行基准测试。在 CS 中学习 F# 后开始学习 C#,其中链表似乎表现得非常好。
标签: c# arrays linked-list type-conversion