我有一个对象数组。我需要将该数组的第一个元素添加到它的末尾,因此第一个和最后一个元素是相同的。我已经想出了这个,但我觉得那里有更好的解决方案。
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
将给定的点数组投影到顶点数组。
答案 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
}