Requête Linq entre deux objets de liste
J'ai deux objets:
ObjectA
{
string code;
string country;
}
ObjectB
{
string code;
string otherstuff;
}
Et j'ai List<objectA>
et List<ObjectB>
et j'ai besoin de trouver tous les objets dans List<ObjectB>
qui contient objectA.Code
.
Mais n'arrive pas à la mettre en œuvre sur requête LINQ.
source d'informationauteur Reno
Vous devez vous connecter pour publier un commentaire.
Il semble que vous essayez de trouver toutes les occurrences de
ObjectB
qui ont uncode
valeur présente dans tout leList<ObjectA>
valeurs. Si oui, essayez les solutions suivantesIl semble que vous voulez joindre à la liste de ObjectA avec la liste des ObjectB sur le
code
de la propriété. C'est une façon:Le résultat est une liste d'objets anonymes, contenant 2 propriétés: une de type ObjectA, b de type ObjectB, avec la même
code
Pour ce faire efficacement, vous pouvez d'abord mettre les codes dans un
HashSet<string>
et ensuite utiliser unContains()
requête pour vérifier si le B en question a un code qui est contenue dans le hashset:Je mettrais les codes de la
ObjectA
liste dans un HashSet, sinon votre requête allait devenir un O(n2). Comme cela, il est un O(n) opération: