Я использую C # на Framework 3.5. Я ищу, чтобы быстро отсортировать Generic List<T>
. Для примера, скажем, у меня есть список Person
типа со свойством фамилия. Как бы отсортировать этот список с помощью лямбда-выражения?
List<Person> people = PopulateList();
people.OrderBy(???? => ?????)
Вам нужен список для сортировки по месту или просто упорядоченная последовательность содержимого списка? Последнее проще:
Для сортировки по месту вам понадобится
IComparer<Person>
илиComparison<Person>
. Для этого вы можете рассмотретьProjectionComparer
в MiscUtil .(Я знаю, что продолжаю поднимать MiscUtil - он просто продолжает быть актуальным ...)
источник
List<T>
, но вам это не нужно, если вы просто хотите повторить.Вы можете использовать linq :) используя:
источник
источник
OrderBy
не модифицировать список, а скорее возвращают новую «коллекцию» (обычно ленивуюIEnumerable<T>
), которую нужно назначить чему-либо.источник
для меня это полезное руководство - сортировка в общем списке - сработало. это поможет вам понять 4 способа (перегрузки), чтобы сделать эту работу с очень полными и ясными объяснениями и простыми примерами
источник
Вы можете использовать этот фрагмент кода:
где
New1
этоList<Employee>
.EmpList
является переменнойList<Employee>
.z
переменнаяEmployee
типа.источник
var
тип.New1
естьList<Employee>
иz
естьEmployee
.Вы также можете использовать
источник
Это универсальный сортировщик. Вызывается с помощью переключателя ниже.
dvm.PagePermissions - это свойство в моей ViewModel типа List T, в этом случае T - это класс модели EF6, называемый page_permission.
dvm.UserNameSortDir - это строковое свойство в модели представления, которое содержит следующее направление сортировки. Тот, который на самом деле используется в представлении.
источник