C # 3.0 Где метод расширения с лямбда против LINQtoObjects для фильтрации в памяти коллекции

я прототипирования на C# 3 фильтров сбора и наткнулся на эту.У меня есть коллекция изделий:

public class MyProduct
    {
        public string Name { get; set; }
        public Double Price { get; set; }
        public string Description { get; set; }
    }

    var MyProducts = new  List<MyProduct>
    {            
        new  MyProduct
        {
            Name = "Surfboard",
            Price = 144.99,
            Description = "Most important thing you will ever own."
        },
        new MyProduct
        {
            Name = "Leash",
            Price = 29.28,
            Description = "Keep important things close to you."
        }
        ,
        new MyProduct
        {
            Name = "Sun Screen",
            Price = 15.88,
            Description = "1000 SPF! Who Could ask for more?"
        }
    };

Теперь, если я буду использовать LINQ для фильтрации он работает как ожидалось.

var d = (from mp in MyProducts
             where mp.Price < 50d
             select mp);

И если я использую метода расширения в сочетании с Лямбда-фильтр работает следующим:

var f = MyProducts.Where(mp => mp.Price < 50d).ToList();

Вопрос: в Чем разница, и почему использовать один над другим?

Найдено 4 ответа:

C# 3.0 Where extension method with lambda vs LINQtoObjects to filter in memory collections

http://stackoverflow.com/questions/5194/c-sharp-3-0-where-extension-method-with-lambda-vs-linqtoobjects-to-filter-in-mem

Посмотреть решение →