Инверсия списка \ Получить последнюю строку

  • Автор темы Автор темы ibred
  • Дата начала Дата начала

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Реакции
3 564
Баллы
113
Приветствую!
В общем, у меня есть список вида:

nicknameOne
nicknameTwo
nicknameThree
nicknameFour

Мне необходимо сделать инверсию списка в рамках этого же списка:
nicknameFour
nicknameThree
nicknameTwo
nicknameOne

Это возможно?

Или же меня интересует возможность получения последней строки с удалением.

Пока только приходит на ум получение получение первой строки Списка 1 и добавление в начало Списка 2. И второй вариант: получение указанной строки по номеру - где это номер последней строки, то есть его нужно постоянно менять в цикле. Решения есть, но они какие-то :bl:

Может есть опция, которую я не могу найти или же простенький C# сниппет?
 
в номер строки напиши end, и будет брать последнюю строку
 
  • Спасибо
Реакции: gvova и ibred
Огромное спасибо!
Действительно, этот момент и даже больше описаны в wiki. Настроек гораздо больше, чем я думал - вот так радость :-)
 
а как можно сделать инверсию списка ? Мне как раз нужно, чтобы список выглядел таким образом (стандартная сортировка по убыванию или возрастанию мне не подходит, нужно чтобы строки инвертированы были именно по своему порядковому номеру, а не по содержанию)
nicknameFour
nicknameThree
nicknameTwo
nicknameOne
 
Последнее редактирование:
Код:
Развернуть Свернуть Копировать
IZennoList oldList = project.Lists["OLD_LIST"];
IZennoList newList = project.Lists["NEW_LIST"];

newList.Clear();
newList.AddRange(oldList.Reverse<string>());
 
  • Спасибо
Реакции: artur23 и Marcelo
а как можно сделать инверсию списка ? Мне как раз нужно, чтобы список выглядел таким образом (стандартная сортировка по убыванию или возрастанию мне не подходит, нужно чтобы строки инвертированы были именно по своему порядковому номеру, а не по содержанию)
nicknameFour
nicknameThree
nicknameTwo
nicknameOne
Есть метод Reverse: https://msdn.microsoft.com/ru-ru/library/b0axc2h2(v=vs.110).aspx
Но, он у меня почему-то не работает :(

Можно попробовать так:
Код:
Развернуть Свернуть Копировать
var list = project.Lists["Список 1"];
for(int i = list.Count-1; i >= 0; i--) {
        list.Add(list[i]);
        list.RemoveAt(i);
}
 
  • Спасибо
Реакции: axiles, YrKa и Marcelo
получаем последнюю строку с удалением

C#:
Развернуть Свернуть Копировать
var list = project.Lists["Список 1"];

lock(SyncObjects.ListSyncer)
{
    var str = list.Last();
    list.Remove(str);
}
 
  • Спасибо
Реакции: Live9up, Шива и kirsa
@VerBin большое спасибо! Работает отлично.
@ibred спасибо, что откликнулись :)
 
Есть метод Reverse: https://msdn.microsoft.com/ru-ru/library/b0axc2h2(v=vs.110).aspx
Но, он у меня почему-то не работает :(

Можно попробовать так:
Код:
Развернуть Свернуть Копировать
var list = project.Lists["Список 1"];
for(int i = list.Count-1; i >= 0; i--) {
        list.Add(list[i]);
        list.RemoveAt(i);
}
Ошибка в логике кода.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)