如何使用LINQ比较两个IEnumerable集合

时间:2012-04-24 10:51:21

标签: c# wpf linq mvvm

我正在使用带MVVM模型的WPF应用程序。我想知道如何比较  两个IEnumerable集合值。我有两个IEnumerable 值,命名为   AvailablePacks RecommendedPacks 。这两个集合具有不同的值集,但它们具有共同的属性 PackID 值。而AvailablePacks具有另一个名为 Quantity 的属性。

现在我想根据PackID 值比较这两个IEnumerable集合值,当两个集合具有相同的 PackID 时,我需要指定 Quantity < / strong>(在AvailablePacks内部)值为某个名为 PackQuantity 的变量,该变量在外部声明。

我是LINQ的新手所以我无法做到这一点。

那么我怎样才能做到这一点?任何人都可以告诉我这方面的解决方案吗?

感谢。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

你在找这样的东西吗?

var query = from x in AvaillablePacks
            join y in RecommendedPacks on x.PackID equals y.PackID
            select new
            {
                PackQuantity = x.Quantity
            };

答案 2 :(得分:1)

这样的东西应该为你工作:

var result = (from availablePack in AvaillablePacks 
                join recommendedPack in RecommendedPackson 
                     availablePack.PackID equals recommendedPack .ID)

foreach(var availablePack in result)
    availablePack .Quantity = PackQuantity ;