Когда я прочитал код, который использует Select
Я думаю «избранный все где». Когда я прочитал код, который использует Map
Я думаю, что «this-that» или «относятся ко всем». Я не могу быть единственным человеком, который чувствует имя Select
сбивает с толку.
Это действительно одинаково отображено на функциональных языках. Причина, по которой он назван , выберите
, это то, что он предназначен для использования в качестве части LINQ, который использует ключевые слова SQL.
from item in collection
where item.Value == someValue
select item.Name
переводится на:
collection.Where(item => item.Value == someValue)
.Select(item => item.Name)
Было бы немного противоречивое, если бы выбрано
на карте
; Что-то вроде:
collection.Filter(item => item.Value == someValue)
.Map(item => item.Name)
на самом деле, многие люди используют LINQ, не слышав о функциональном программировании вообще. Для них LINQ является методом для получения объектов данных и запросить их легко (например, запросы SQL). Для них выберите
и , где
имеет смысл. Намного больше чем карта
и фильтр
.
Одна из основных причин, по которой Select идет последним, - заставить Intellisense работать. Если поставить источник последовательности первым (оператор from), Intellisense может работать правильно.