【问题标题】:C# version of Array.Unshift() from UnityScript?UnityScript 中 Array.Unshift() 的 C# 版本?
【发布时间】:2014-02-22 08:33:09
【问题描述】:
我正在尝试编写一个简单的聊天框,我在统一论坛上找到了一段非常简单的代码,但它是在 UnityScript 中的(类似于 JavaScript)。
我尝试将代码转换为 C#,并且取得了一些成功,但问题是代码使用了 Array.Unshift(),它将项目添加到数组中。我试图在 C# 中找到一些简单的方法,但对于我的生活,我无法让它工作。
Array.Unshift 的 C# 等价物是什么?
【问题讨论】:
标签:
c#
arrays
unity3d
unityscript
【解决方案1】:
根据我的理解,.Unshift 方法将项目添加到数组的开头并返回数组的新长度。
您可以在 C# 中使用List<T> 集合。要在 (prepond) 的第一个位置添加项目以列出使用以下方式。
List<T>.Insert(0, item); // this will insert item at first position
您还可以使用.ToArray() 列表方法将此列表转换为数组。
【解决方案2】:
C# 数组很棘手。您需要创建一个新数组并复制旧数组中的所有元素,以及要插入的额外元素。我建议改用List<T>,或者重新考虑算法以便它不需要它。
【解决方案3】:
如果您导入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}
//..