【问题标题】: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&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}
        //..
        
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-17
          • 2015-03-23
          • 2016-04-09
          • 1970-01-01
          相关资源
          最近更新 更多