Так как Firebug не работает над Вашим сервером, но берет CSS от сайта и хранит его локально и показывает Вам сайт с теми локальными изменениями.
Где
находит совпадающие элементы и возвращает только те, которые выполняют ( фильтрацию ).
-> IEnumerable
in, IEnumerable
out
Select
возвращает что-то для всех элементов в источнике ( проекция / преобразование ). Это что-то может быть самими элементами, но чаще всего это какая-то проекция.
Они разные:
Select
- это преобразование .
Где
- это фильтрация .
Select отображает перечислимый объект в новую структуру. Если вы выполните выбор в IEnumerable, вы получите массив с тем же количеством элементов, но другого типа в зависимости от указанного вами сопоставления. Где фильтрует IEnumerable, чтобы получить подмножество исходного IEnumerable.
Выберите и Где - два совершенно разных оператора, действующих на IEnumerable s.
Первый - это то, что мы называем Оператор проекции , а последний - это Оператор ограничения .
Один интересный способ узнать о поведении таких операторов - это взглянуть на их «функциональный тип».
Выберите: (IEnumerable
Отсюда легко догадаться, что этот оператор будет производить свой вывод, применяя функцию ввода к каждому элементу входного IEnumerable и помещая результаты в новый IEnumerable.
Используя некоторые математические обозначения, он принимает в качестве входных данных (a, b, c, ...): IEnumerable
Где: (IEnumerable
На этот раз можно предположить, что элемент входного IEnumerable будет присутствовать в выходном IEnumerable в зависимости от результата применения предиката к элементу. Добавляя к этому семантику имени оператора, вы можете быть уверены, что он создаст выходной IEnumerable, взяв из входа только те элементы, которые оцениваются как истинные при применении предиката.
Люди с функциональным программирование фон обычно думает так. Он позволяет вам вывести (или хотя бы догадаться ...), что делает оператор, только глядя на его тип!
В качестве упражнения попробуйте взглянуть на другие операторы, представленные LINQ в IEnumerables, и вывести их поведение, прежде чем искать в документации!
Добавляя к этому семантику имени оператора, вы можете быть уверены, что он создаст выходной IEnumerable, взяв из входа только те элементы, которые оцениваются как истинные при применении предиката.Люди с функциональным программирование фон обычно думает так. Он позволяет вам вывести (или хотя бы догадаться ...), что делает оператор, только глядя на его тип!
В качестве упражнения попробуйте взглянуть на другие операторы, представленные LINQ в IEnumerables, и вывести их поведение, прежде чем искать в документации!
Добавив к этому семантику имени оператора, вы можете быть уверены, что он создаст выходной IEnumerable, взяв из входа только те элементы, которые оцениваются как истинные при применении предиката.Люди с функциональным программирование фон обычно думает так. Он позволяет вам вывести (или хотя бы догадаться ...), что делает оператор, только глядя на его тип!
В качестве упражнения попробуйте взглянуть на другие операторы, представленные LINQ в IEnumerables, и вывести их поведение, прежде чем искать в документации!
Люди с опытом функционального программирования обычно думают так. Он позволяет вам вывести (или хотя бы догадаться ...), что делает оператор, только глядя на его тип!
В качестве упражнения попробуйте взглянуть на другие операторы, представленные LINQ в IEnumerables, и вывести их поведение, прежде чем искать в документации!
Люди с опытом функционального программирования обычно думают так. Он позволяет вам вывести (или хотя бы догадаться ...), что делает оператор, только глядя на его тип!
В качестве упражнения попробуйте взглянуть на другие операторы, представленные LINQ в IEnumerables, и вывести их поведение, прежде чем искать в документации!