2012-04-25 100 views
-1

2個IEnumurable收藏我想知道如何比較使用Lambda表達式 2個IEnumerable集合值。比較使用Lambda表達式

我已經張貼了這個由LINQ得到,但它應該由Lambda表達式acheive。

我對實現這個LINQ代碼:

var result = from ap in AvailablePacks 
      join rp in RecommendedPacks 
      on ap.PackID equals rp.PackID 
      select new 
      { 
        PackQuantity =ap.Quantity 
      }; 

現在我想通過使用Lambda表達式來實現這一目標。我怎樣才能做到這一點?

+0

在我看來,當談到'joins',查詢語法是更好的選擇(順便說一句,[在VB.NET總是](http://stackoverflow.com/a/9039282/284240))。 – 2012-04-25 08:52:07

+0

我們可以在沒有連接的情況下使用這個翻譯形式嗎?可能嗎? – SuryaKavitha 2012-04-25 09:45:04

回答

4

那麼你實際上要求的是從查詢表達式翻譯成lambda表達式的形式?在這種情況下,你可以使用:

var result = AvailablePacks.Join(RecommendedPacks, 
           ap => ap.PackID, 
           rp => rp.PackID, 
           (ap, rp) => new { PackQuantity = ap.Quantity }); 

有關查詢表達式翻譯更多信息,請參閱Part 41 of my Edulinq blog series

+0

謝謝喬恩......它對我來說真的很有用......這就是我需要的,我會在我的代碼中檢查這個,並讓你知道 – SuryaKavitha 2012-04-25 08:50:45

+0

@SuryaKavitha:爲什麼你不能使用查詢表達式形式?我通常會加入... – 2012-04-25 08:51:48

+0

我們可以使用這個沒有加入?我不知道查詢表達式的形式?你能告訴我如何處理查詢表達式的形式? – SuryaKavitha 2012-04-25 09:35:46