Avatar billede zentral Nybegynder
11. juli 2013 - 11:49 Der er 3 kommentarer og
1 løsning

List<T> - WHERE IN ?

Jeg har et problem med at lave en WHERE IN, i Linq,

Jeg har lavet en foreach som viser hva det er jeg ønsker,
men håber en af jer kan fortålle mig hvordan jeg lavet det nmed en almindelig WHERE


public static List<Size> GetByRelationColorID(int id)
{
List<Size> Items = new List<Size>();
List<Relation> GetRelations = Relation.GetByColorID(id);

foreach (Relation item in GetRelations)
  Items.Add(GetAll().FirstOrDefault(i => i.ID == item.SizeID));

return Items;
}
Avatar billede crazysnap Seniormester
11. juli 2013 - 12:26 #1
Hej zentral,

Er det nedenstående du ønsker?


(ved brug af "Query syntax")
Items = GetAll().Where(iAll => GetRelations.Any(x => iAll.ID == x.SizeID)).ToList();


(ved brug af "Method syntax")
Items = (from iAll in GetAll()
                where GetRelations.Any(x => iAll.ID == x.SizeID)
                select iAll).ToList();
Avatar billede zentral Nybegynder
11. juli 2013 - 12:40 #2
Ska lige have det testet, men det ser sku rigtig ud !!

Hvad er forskellen på de 2 måder at gøre det på ?
Bruger altid måde 1, men nok os mest fordi jeg ik ved hva forskellen er ?
Avatar billede Syska Mester
11. juli 2013 - 13:00 #3
Forskellen er syntax.

1 bliver reelt til 2 ... bare ved hjælp af method calls.

Så brug hvad du synes er smukkest.

mvh
Avatar billede crazysnap Seniormester
11. juli 2013 - 13:21 #4
Det er præcis som buzzzz siger, C#-kompileren håndterer begge kode-eksempler på præcis samme måde, det er bare forskellige måder at skrive det samme på.

Så benyt hvad du ønsker og hvad du synes er nemmest at læse (jeg selv fortrækker oftest query syntax da det fylder mindst).

Der er dog forskelle som gør at den ene metode kan fortrækkes frem for den anden, men det kommer helt an på den "query" du er ved at opbygge (f.eks. kan du med "method syntax" bruge "let"-keywordet til at danne temporere variable inde i din query)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester