如何最好复制数组的最后一个元素?

时间:2011-11-09 03:26:57

标签: c#-4.0

这是我相当笨拙的解决方案:

   // Duplicate last element 
   { 
          List<PointF> t; 
          t = tiles.ToList(); 
          t.Add(tiles.LastOrDefault()); 
          tiles = t.ToArray(); 
   }

.Add不返回列表的奇怪事实意味着一个语句被强制为四个。

什么是更好的,例如更简洁的方式?感谢。

2 个答案:

答案 0 :(得分:3)

我发现你的例子难以理解......让我知道这是否有意义。

var strings = new[] { "Item 1", "Item 2" };
strings = strings.Concat(new[] { strings.LastOrDefault() }).ToArray();

此示例采用数组并复制最后一项。

在您的情况下,tiles似乎是PointF的数组。如果要复制最后一个元素,您只需要:

tiles = tiles.Concat(new[] { tiles.LastOrDefault() }).ToArray();

答案 1 :(得分:1)

这个怎么样? 它会复制你的最后一个元素。 它涵盖了空数组的结尾

ArrayList<PointF> t;
t = tiles.toList();
if (t.size() ==0){
//something else or nothing
}else{
t.add(new PointF(t.at(t.size()-1))); 
//i am not a C# programmer and i dont even have VS so it could be get() or something
tiles = t.toArray();
}