none
Linq mit contains in der where-Klausel RRS feed

  • Frage

  • Hallo,

    ich habe mal wieder ein Problem mit einer Linq-Abfrage.

    Ich habe folgendes Statement bei dem ich einen Filter erweitern muss

    geraete = (from g in context.Geraete where g.Online select g).ToList();

    Filter

    geraete = geraete.Where(g => g.Id .... in NewsData.Contains(g.ID)

    g.Id soll in ein einer anderen Liste sein z.B.

    List<Neuigkeiten> NewsData

    also entweder ein Contains mit der Liste oder ein join auf eine andere Tabelle

    public partial class Neuigkeiten { public int ID { get; set; }}

    Ich hoffe das ist einigermaßen verständlich von mir ausgedrückt und ich hoffe weiter das mir jemand helfen kann.

     

     

     

     

     

     

     

     

    Montag, 19. Mai 2014 19:56

Antworten

  • Hallo,

    die Frage solltest Du besser in einem .NET Forum stellen, den das (=Linq) hat nicht wirklich was direkt mit dem SQL Server zu tun.

    Contains prüft, ob ein Element in der Liste oder eine Zeichenfolge in einer anderen enthalten ist; damit kommst Du hier nicht weiter. Wenn Du zwei Listen miteinander verknüpfen willst, kannst Du in Linq wie in SQL ein JOIN verwenden:

    public partial class Neuigkeiten
    { 
        public int ID { get; set; }
        public string ListName { get; set; }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            var list1 = new List<Neuigkeiten>();
            list1.Add( new Neuigkeiten() { ID = 1, ListName = "Liste1" });
            var list2 = new List<Neuigkeiten>();
            list2.Add( new Neuigkeiten() { ID = 1, ListName = "Liste2" });
                
            var result = (from l1 in list1
                            join l2 in list2 on l1.ID equals l2.ID
                            select new { l1.ID, Listname1 = l1.ListName, Listname2 = l2.ListName });
        }
    }


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 20. Mai 2014 07:29