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

ibred

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

nicknameOne
nicknameTwo
nicknameThree
nicknameFour

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

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

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

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

Может есть опция, которую я не могу найти или же простенький C# сниппет?
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
215
Баллы
43
в номер строки напиши end, и будет брать последнюю строку
 
  • Спасибо
Реакции: gvova и ibred

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 544
Баллы
113
Огромное спасибо!
Действительно, этот момент и даже больше описаны в wiki. Настроек гораздо больше, чем я думал - вот так радость :-)
 

Marcelo

Client
Регистрация
16.12.2014
Сообщения
109
Благодарностей
17
Баллы
18
а как можно сделать инверсию списка ? Мне как раз нужно, чтобы список выглядел таким образом (стандартная сортировка по убыванию или возрастанию мне не подходит, нужно чтобы строки инвертированы были именно по своему порядковому номеру, а не по содержанию)
nicknameFour
nicknameThree
nicknameTwo
nicknameOne
 
Последнее редактирование:

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
455
Баллы
63
Код:
IZennoList oldList = project.Lists["OLD_LIST"];
IZennoList newList = project.Lists["NEW_LIST"];

newList.Clear();
newList.AddRange(oldList.Reverse<string>());
 
  • Спасибо
Реакции: artur23 и Marcelo

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 544
Баллы
113
а как можно сделать инверсию списка ? Мне как раз нужно, чтобы список выглядел таким образом (стандартная сортировка по убыванию или возрастанию мне не подходит, нужно чтобы строки инвертированы были именно по своему порядковому номеру, а не по содержанию)
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

doc

Client
Регистрация
30.03.2012
Сообщения
8 613
Благодарностей
4 601
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
получаем последнюю строку с удалением

C#:
var list = project.Lists["Список 1"];

lock(SyncObjects.ListSyncer)
{
    var str = list.Last();
    list.Remove(str);
}
 
  • Спасибо
Реакции: Live9up, Шива и kirsa

Marcelo

Client
Регистрация
16.12.2014
Сообщения
109
Благодарностей
17
Баллы
18
@VerBin большое спасибо! Работает отлично.
@ibred спасибо, что откликнулись :-)
 

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
455
Баллы
63

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