Чтобы ответить на ваш второй вопрос первым, я думаю, что это отличный вопрос для StackOverflow!
В первом случае одним из примеров будет сортировка. Метод Sort () в List принимает делегата для выполнения сортировки, как и метод Find (). Я не большой поклонник сортировки в базе данных, поэтому мне нравится использовать Sort () в моих наборах результатов. В конце концов, порядок списка - это скорее проблема пользовательского интерфейса (обычно), чем проблема бизнес-правил.
Редактировать: я добавил свои причины для сортировки вне БД к соответствующему вопросу здесь .
Редактировать: функция сравнения, используемая в процедуре сортировки, является делегатом. Поэтому, если вы сортируете List с помощью метода .Sort (Comparison (T)), метод Comparison (T), который вы передаете функции сортировки, является делегатом. См. Сортировка (Сравнение (T)) Документация .