List OrderBy по алфавиту

Для примитивного типа данных, такого как int, двойные указатели не нужны. Вы можете писать непосредственно в адрес, где хранится int, обрабатывая его адрес как указатель вызываемой функции. Это не похоже на массив char («строка»), где размер указателя указывает на переменную, и поэтому вы должны использовать другой уровень косвенности при изменении его из вызываемой функции. Попробуйте следующее:

void foo(int *oldVal)
{
    int newVal = 99;    // or whatever you want
    *oldVal = newVal;
}

int main(int argc, char *argv[])
{
    int someVal = 0;
    foo(&someVal);      // we send its address to foo()

    printf("someVal is now %d.\n", someVal);

    return EXIT_SUCCESS;
}
423
задан Ahmed Abdelhameed 3 July 2018 в 18:26
поделиться

3 ответа

Если Вы имеете в виду оперативный вид (т.е. список обновляется):

people.Sort((x, y) => string.Compare(x.LastName, y.LastName));

, Если Вы имеете в виду новый список:

var newList = people.OrderBy(x=>x.LastName).ToList(); // ToList optional
670
ответ дан Marc Gravell 3 July 2018 в 18:26
поделиться
  • 1
    Я получаю уведомление, если кто-либо отправляет ответ, или прокомментируйте вопрос, который я отправил, таким образом, я сразу смотрел. Да, it' s положительная сторона - Спасибо! – Nikola 18 April 2013 в 17:00

Вам нужен список, который будет отсортирован на месте, или просто заказанная последовательность содержания списка? Последний легче:

var peopleInOrder = people.OrderBy(person => person.LastName);

Для сортировки на месте Вам было бы нужно IComparer<Person> или Comparison<Person>. Для этого можно хотеть рассмотреть ProjectionComparer в MiscUtil.

(я знаю, что продолжаю обеспечение MiscUtil - это просто продолжает быть релевантным...)

93
ответ дан Jon Skeet 3 July 2018 в 18:26
поделиться
people.OrderBy(person => person.lastname).ToList();
23
ответ дан bluish 3 July 2018 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: