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<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
//..
【讨论】:
以上是关于UnityScript 中 Array.Unshift() 的 C# 版本?的主要内容,如果未能解决你的问题,请参考以下文章
UnityScript 中 Array.Unshift() 的 C# 版本?