Не использовать X11?
$ sudu rm /usr/local/bin/emacs
Изменение Ваша оболочка входа в систему к vi?
Первый, вынудите себя использовать редактор , тогда , vi будет походить на роскошь?
Использование vi привязки клавиш в [1 113] удар ?
Только начинают использовать vi все время?
мне кажется, что изучение редактора не ужасно отличается от изучения языка. Погружение работает лучше всего.
я использую vi для действительно быстрых редактирований или когда я не могу использовать X11 по некоторым причинам, но я живу в [1 117] emacs. Действительно мощные редакторы стоят не торопиться для изучения.
Честно говоря, мне это кажется довольно ясным. Я думаю, что лямбда в этом случае может быть менее читабельной, т.е. что-то вроде того, что Брендон опубликовал ниже.
(Похищено из сообщения Брэндона)
var project = accounts.Select(a => a.AccountProjects)
.Where(x => x.AccountProjectID == accountProjectId);
Что касается читабельности, я думаю, что пара циклов предпочтительнее лямбда-решение, и я думаю, что ваше решение предпочтительнее циклов.
var project = accounts.SelectMany(a => a.AccountProjects)
.Where(x => x.AccountProjectID == accountProjectId);
Насколько это проще - вопрос вкуса.
Я согласен с Эдом Свангреном. Это выглядит лаконично и достаточно читабельно.
На самом деле ответ на ваш вопрос зависит от трех вещей:
Если вы хотите повысить производительность, и в случае, если «учетные записи» являются списком, итоговая коллекция будет повторяться или передан другому методу для итерации достаточно скоро после этих строк кода, я бы сделал что-то вроде этого:
List<Account> filteredAccounts = new List<Account>();
accounts.ForEach(a => { if (a.AccountProjectID == accountProjectId) filteredAccounts.Add(a); });
Конечно, он менее читабелен, чем ваш оператор LINQ, но я бы использовал эти 2 строки, а не учетные записи.Select .... ...
И, конечно же, он намного лучше оптимизирован для производительности, что, я считаю, всегда важно.