将数组的第一个元素添加到同一个数组中

时间:2014-12-26 22:40:13

标签: c# arrays concatenation elements

我有一个对象数组。我需要将该数组的第一个元素添加到它的末尾,因此第一个和最后一个元素是相同的。我已经想出了这个,但我觉得那里有更好的解决方案。

points.Concat(new[] { points[0] }).ToArray()

完整背景:

public static Vertex[] CreateLineStrip(Color color, params Vector2f[] points)
{
    return CreateVertices(color, points.Concat(new[] { points[0] }).ToArray());
}

CreateVertices将给定的点数组投影到顶点数组。

2 个答案:

答案 0 :(得分:0)

鉴于以下扩展方法,与您的评论内联,您可以添加一些语法糖

然而,除了闪亮的新扩展方法

之外,这里没有什么真正获得的
public static class ArrayExtensions
{
   static public T[] Append<T>(this T[] array, T item)
   {
      return array.Concat(new[] { item }).ToArray();
   }
}

public static Vertex[] CreateLineStrip(Color color, params Vector2f[] points)
{
    return CreateVertices(color, points.Append(points[0]));
}

答案 1 :(得分:0)

        public void MyMethod(params Contact[] contacts)
        {
            var list = new List<Contact>(contacts);
            list.Add(list[0]);

            // ... do your thing
        }