Как лучше всего дублировать последний элемент массива? - PullRequest
1 голос
/ 09 ноября 2011

Вот мое довольно неуклюжее решение:

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

Странный факт, что .Add не возвращает список, означает, что одно утверждение должно быть четыре.

Что лучше, например, более краткопуть?Спасибо.

Ответы [ 2 ]

3 голосов
/ 09 ноября 2011

Мне трудно следовать вашему примеру ... дайте мне знать, если это имеет смысл.

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

Этот пример принимает массив и дублирует последний элемент.

В вашем случае это выглядит так: tiles - это массив PointF. Если вы хотите продублировать последний элемент, все, что вам нужно сделать, это:

tiles = tiles.Concat(new[] { tiles.LastOrDefault() }).ToArray();
1 голос
/ 09 ноября 2011

Как насчет этого?это дублирует ваш последний элемент, каким бы он ни был.он охватывает конец пустого массива

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...