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

Posted

技术标签:

【中文标题】UnityScript 中 Array.Unshift() 的 C# 版本?【英文标题】:C# version of Array.Unshift() from UnityScript? 【发布时间】:2014-02-22 08:33:09 【问题描述】:

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

我尝试将代码转换为 C#,并且取得了一些成功,但问题是代码使用了 Array.Unshift(),它将项目添加到数组中。我试图在 C# 中找到一些简单的方法,但对于我的生活,我无法让它工作。

Array.Unshift 的 C# 等价物是什么?

【问题讨论】:

【参考方案1】:

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

您可以在 C# 中使用List<T> 集合。要在 (prepond) 的第一个位置添加项目以列出使用以下方式。

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

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

【讨论】:

【参考方案2】:

C# 数组很棘手。您需要创建一个新数组并复制旧数组中的所有元素,以及要插入的额外元素。我建议改用List&lt;T&gt;,或者重新考虑算法以便它不需要它。

【讨论】:

【参考方案3】:

如果您导入System.Linq,它还会将.Prepend(T obj) 添加到包含数组的IEnumerable&lt;T&gt;

using System.Linq;

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

【讨论】:

以上是关于UnityScript 中 Array.Unshift() 的 C# 版本?的主要内容,如果未能解决你的问题,请参考以下文章

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

UnityScript中需要注意的问题

Unityscript/Javascript 是不是已停产?

UnityScript,在FSM中使用协同程序的静态方法

如何用unity3d编写javascript

Unity中所有特殊的文件夹