Мне часто кажется, что я хочу использовать методы Head и Tail для IEnumerables, которые не существуют как часть Linq. Хотя я мог легко написать свои собственные, я задаюсь вопросом, были ли они целенаправленно опущены. Например,Почему у Линка нет головы и хвоста?
var finalCondition = new Sql("WHERE @0 = @1", conditions.Head().Key, conditions.Head().Value);
foreach (var condition in conditions.Tail())
{
finalCondition.Append("AND @0 = @1", condition.Key, condition.Value);
}
Итак, что является лучшей практикой в этом отношении с Linq? Является ли тот факт, что я продолжаю находить использование для этого признака того, что я не делаю что-то рекомендованное? Если нет, то почему эта общая функциональная парадигма не реализована в Linq?
Первый() и последний() или FirstOrDefault() – Laurijssen
Книга Оливера Штурма [Функциональное программирование на C# _] (http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470744588.html) имеет много загружаемого исходного кода. Если я правильно помню, это также содержит методы расширения для головы и хвоста. –
@GertArnold У меня есть проблемы с ними, вопрос о том, считается ли это лучшей практикой. –