using System;
using System.Xml.Linq; // add System.Xml.Linq.dll to referencesusing System.Linq;
class MainClass
{
public static void Main (string[] args)
{
// var doc = XDocument.Parse(@"<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>");
var list = doc.Root.Elements("li")
.Select(element => element.Value)
.ToList();
var reversed_list = list.AsEnumerable().Reverse();
XElement xmlElements = new XElement("ul", reversed_list.Select(i => new XElement("li", i)));
System.Console.Write(xmlElements);
}
}
CreatorCray в ветке правильный ответ дал. Ну и вообще это свинство, первые 5 минут положено выносить мозг заказчику вопросом "ну допустим, я этот список разверну. И таки что вы будете с ним делать дальше?".
Позволяет сэкономить тонну времени, особенно если клиент из разряда "сначала просит, потом думает".
AS>моё время решения — 40 минут
Нюанс: надо бы ещё закинуть элементы в XDocument обратно.
Это список из 'li' эллементов или char?
\ Это html(для броузера?) или xml?
Надо развернуть конкретный список или сделать универсальную(на сколько?) функцию?
\ Для чего будет юзаться этот список(для репортов/как промежуточный степ в бл/..)?
\ Есть ли ограничения на оперативку?
Для решения какой пробемы в продукте надо развернуть это список?
Підтримати Україну у боротьбі з країною-терористом.
Здравствуйте, Arsen.Shnurkov, Вы писали:
S>>Нюанс: надо бы ещё закинуть элементы в XDocument обратно.
AS>ну сейчас ещё требований будет на два месяца доработок...
Не, только это
J>Для решения какой пробемы в продукте надо развернуть это список?
Я думаю, что это как-то связано с политикой: http://www.tvc.ru/news/show/id/47100Copyright
там в статье как раз молоко фурами возят.
только относится не к автотранспорту, а к железнодорожным составам.
К примеру, подготовка к блокировке импорта из Турции.
Надо будет отправлять составы обратно, для этого цеплять локомотив с другой стороны,
а значит вагоны прибудут обратно в обратном порядке.
в системе межстранового взаимодействия по архитектуре SOA,
тогда это скорее XML чем HTML
Если написано на русском языке, значит с русской стороны (нотификация об отправке)
и со стороны получения развёрнутый список должен быть на турецком языке.
Ну ок, придумайте хоть один реалистичный сценарий
в котором надо разворачивать физические предметы, а не абстракции
и где требуется автоматизация процесса.
Вот именно, учитывая контекст обсуждения.
S>Нюанс: надо бы ещё закинуть элементы в XDocument обратно.
А почему в XDocument? Контекст же не обозначен. А вдруг это упрощённый вариант сортировки на веб-странице? Тогда JavaScript для выполнения задачи -- самое то.
Меня заинтересовал этот вопрос, и вот что получилось:
test.html
<!DOCTYPE html>
<html>
<body>
<ul>
<li>04/30/2016</li>
<li>05/01/2016</li>
<li>06/23/2016</li>
</ul>
<button onclick="reverseList()">Reverse</button>
<script>
function reverseList() {
var ul = document.getElementsByTagName("UL")[0];
var newUL = document.createElement("UL");
while (ul.children.length)
newUL.appendChild(ul.children[ul.children.length - 1]);
ul.innerHTML = newUL.innerHTML;
}
</script>
</body>
</html>
Решение на ДжаваСкрипте; конечно, возможны и серверные случаи применения, но для приближения к реальности я выбрал задачу сортировки на клиенте по датам.
AS>моё время решения — 40 минут
Моё -- 2 часа. При этом моё решение масштаба "ХэллоуУорлд"; в реальной же задаче с десятками элементов списка как раз надо копировать все данные в дополнительный буфер (слышу, как вопят кадровые си-плюс-плюсники), ибо каждое изменение элемента ДОМа вызывает перерисовку страницы.
я это всё к чему — задача определённо решается методом индусокодинга (копированием со stackoverflow),
поэтому для её выполнения можно нанимать каждого.
собеседование тогда может выглядеть так:
— Покажите Ваш аккаунт на SO.
— он есть, смотрите как логинюсь.
— ок, Вы приняты.
mgu>А почему в XDocument? Контекст же не обозначен. А вдруг это упрощённый вариант сортировки на веб-странице? Тогда JavaScript для выполнения задачи -- самое то.
Угу. Я про код топикстартера говорил, не про код для решения задачи — там надо сначала детали уточнить, потом с шашкой на код бросаться
mgu>Решение на ДжаваСкрипте; конечно, возможны и серверные случаи применения, но для приближения к реальности я выбрал задачу сортировки на клиенте по датам.
Решение явно не дотягивает до энетерпрайз уровня.
Да жс. Да броузер возгорается от диких манипуляция с DOM.
Но где все йоба фреймверки? Где ангулар, реакт, ноде жс?
Где плагин, в конце-концов, для жля жквери: "Revert elements"?
Підтримати Україну у боротьбі з країною-терористом.
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>я это всё к чему — задача определённо решается методом индусокодинга (копированием со stackoverflow),
StackOverflow -- это часто только начало пути; даже в одной теме там приводятся разные работающие решения. AS>поэтому для её выполнения можно нанимать каждого.
AS>собеседование тогда может выглядеть так: AS>- Покажите Ваш аккаунт на SO. AS>- он есть, смотрите как логинюсь. AS>- ок, Вы приняты.
У членов SO разные роли -- одни спрашивают, другие газируют лужи, а третьи выдают заплатки различного уровня качества.