UnityScript中Array.Unshift()的C#版本?

8

我正在尝试编写一个简单的聊天框,我在Unity论坛上找到了一段非常简单的代码,但它是用UnityScript编写的(类似于JavaScript)。

我尝试将代码转换为C#,并且有些成功,但问题是代码使用了Array.Unshift(),它将一个项目添加到数组的开头。我正在尝试找到一些简单的方法在C#中实现这个功能,但是我却无法让它工作。

Array.Unshift的C#等效方法是什么?

3个回答

10

根据我的理解,unshift方法将项目添加到数组的开头,并返回新数组的长度。

在C#中,您可以使用List<T>集合。要将项目添加到列表的第一个位置,请使用以下方式。

List<T>.Insert(0, item); // this will insert item at first position

您也可以使用列表的.ToArray()方法将此列表转换为数组。


1
使用C#数组有些棘手。您需要创建一个新的数组,并将旧数组中的所有元素以及要插入的额外元素复制到其中。我建议使用List<T>,或者重新考虑算法,使其不需要这样做。

1
如果您导入System.Linq,它还会将.Prepend(T obj)添加到IEnumerable<T>中,其中包括数组。
using System.Linq;

//...
int[] example = new int[]{1,2,3};
int[] updated = example.Prepend(0);//{0,1,2,3}
//..


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接