这是我相当笨拙的解决方案:
// Duplicate last element
{
List<PointF> t;
t = tiles.ToList();
t.Add(tiles.LastOrDefault());
tiles = t.ToArray();
}
.Add不返回列表的奇怪事实意味着一个语句被强制为四个。
什么是更好的,例如更简洁的方式?感谢。
答案 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();
}