简体   繁体   English

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

[英]How to Compare two IEnumerable Collections using LINQ

I am using a WPF application with MVVM model. 我正在使用带有MVVM模型的WPF应用程序。 I want to know how to compare two IEnumerable collection values. 我想知道如何比较两个IEnumerable集合值。 I am having two IEnumerable values , named as AvailablePacks and RecommendedPacks . 我有两个IEnumerable值,名为AvailablePacksRecommendedPacks These two collection have different set of values but they are having common property PackID value. 这两个集合具有不同的值集,但它们具有公共属性PackID值。 And AvailablePacks having a another property named as Quantity . 和AvailablePacks有另一个名为Quantity的属性。

Now i want to compare these two IEnumerable collection values based upon PackID value, When the both collection having the same PackID I need to assign that Quantity (Inside of AvailablePacks) value to some variable called PackQuantity Which is declared outside . 现在我想基于PackID值比较这两个IEnumerable集合值,当两个集合具有相同的PackID时,我需要将Quantity (Inside of AvailablePacks)值分配给一个名为PackQuantity的变量,该变量在外部声明。

I am new to LINQ So i am not able to do this properly. 我是LINQ的新手所以我无法做到这一点。

So How Can i achieve this? 那我怎么能实现这个目标呢? Can any one tell me a solution of this? 任何人都可以告诉我这个解决方案吗?

Thanks. 谢谢。

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

Are you looking for something like this? 你在找这样的东西吗?

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

Somethign like this should work for you: 像这样的某些东西应该适合你:

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM