這是我相當笨拙的解決方案:如何最好地複製數組的最後一個元素?
// Duplicate last element
{
List<PointF> t;
t = tiles.ToList();
t.Add(tiles.LastOrDefault());
tiles = t.ToArray();
}
奇怪的事實。新增不返回列表意味着一個語句被強制爲4。
什麼是更好的例如更簡潔的方式?謝謝。
這是我相當笨拙的解決方案:如何最好地複製數組的最後一個元素?
// Duplicate last element
{
List<PointF> t;
t = tiles.ToList();
t.Add(tiles.LastOrDefault());
tiles = t.ToArray();
}
奇怪的事實。新增不返回列表意味着一個語句被強制爲4。
什麼是更好的例如更簡潔的方式?謝謝。
我發現你的例子很難遵循...讓我知道如果這是有道理的。
var strings = new[] { "Item 1", "Item 2" };
strings = strings.Concat(new[] { strings.LastOrDefault() }).ToArray();
該示例獲取數組並複製最後一項。
在你的情況下,它看起來像tiles
是一個PointF
的數組。如果你想複製最後一個元素,所有你需要做的是:
tiles = tiles.Concat(new[] { tiles.LastOrDefault() }).ToArray();
你跟着它很好 - 謝謝。 – ChrisJJ
這個怎麼樣?它會複製你的最後一個元素。 它涵蓋了一個空數組
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();
}
爲什麼不直接使用ArrayList的ENDCASE? – Gleeb
@Gleeb:因爲是2011年? – Dyppl
'LastOrDefault()'會在您的列表中添加'null'如果'tiles'爲空,則最好檢查'tiles.Any()'並使用'tiles.First()'如果它不爲空 – Dyppl