2016-12-15 14 views
-1

Ich habe zwei Listen, dieaus einer Liste entfernen Element, das nicht in einer anderen Liste mit LINQ ist

public Ingrédient(int p_noIngrédient, string p_nomIngrédient, bool p_périssable, 
       double p_prixAuKilo) 
{ 
    NoIngrédient = p_noIngrédient; 
    NomIngrédient = p_nomIngrédient; 
    Périssable = p_périssable; 
    PrixAuKilo = p_prixAuKilo; 
} 

public Recette(int p_noPlat, int p_noIngrédient, double p_quantité) 
{ 
    NoPlat = p_noPlat; 
    NoIngrédient = p_noIngrédient; 
    Quantité = p_quantité; 
} 

unterscheidet ich all NoIngrédient in Ingrédient finden will, das nicht in Recette ist. Gerade jetzt habe ich das aber es funktioniert nicht.

void RetraitIngrédient(List<Recette> p_recettes,ref List<Ingrédient> p_ingrédients) 
{ 
    foreach (Recette recettes in p_recettes) 
    { 
     Ingrédient ingrédients = 
      p_ingrédients.Find(i => i.NoIngrédient != recettes.NoIngrédient); 

     WriteLine("{0,6} : {1:6}",ingrédients.NoIngrédient, ingrédients.NomIngrédient); 
    } 
} 
+1

[http://stackoverflow.com/questions/3944803/use-linq-to-get-items-in-one-list-that-are-not-in-another-list](http: //stackoverflow.com/questions/3944803/use-linq-to-get-items-in-one-list-that-are-not-in-an-other-list) – JaredStroeb

+0

Ich dachte mit der WriteLine, dass es alle schreiben würde Elemente, die in der anderen Liste nicht vorhanden sind, aber leer sind. –

+0

@JaredStroeb Ich habe diese Methode versucht, aber wegen der Ref funktioniert es nicht. –

Antwort

0

Sie könnten so etwas versuchen.

 var results = _listIngredient.Join(_listRecette, 
         i => i.NoIngrédient, 
         r => r.NoIngrédient, 
         (ingre, rece) => new { ingre.NoIngrédient, ingre.NomIngrédient, ingre.PrixAuKilo, ingre.Périssable }); 
Verwandte Themen