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

本文关键字:两个 IEnumerable 集合 何使用 LINQ 比较 | 更新日期: 2023-09-27 18:32:01

我正在使用带有MVVM模型的WPF应用程序。我想知道如何比较 两个 IEnumerable 集合值。我有两个 IEnumerable 值,命名为 可用包和推荐包。这两个集合具有不同的值集,但它们具有公共属性 PackID 值。和可用包具有另一个名为数量的属性。

现在我想根据 PackID 值比较这两个 IEnumerable 集合值,当两个集合具有相同的 PackID 时,我需要将该数量(可用包内部)值分配给一个名为 PackQuantity 的变量,该变量在外部声明。

我是 LINQ 的新手,所以我无法正确执行此操作。

那么我怎样才能做到这一点呢?谁能告诉我解决这个问题的方法?

谢谢。

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

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

你在寻找这样的东西吗?

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

像这样的Somethign应该适合你

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