Avatar billede jan_amdi Nybegynder
13. oktober 2008 - 10:28 Der er 2 kommentarer og
1 løsning

LINQ to Object vs. foreach/if - best practice

Hejsa

Er ved at sætte mig lidt ind i LINQ's forunderlige verden, deriblandt LINQ to object.

Her kan jeg jo søge gennem en samling af objecter og f.eks. finde de objecter der opfylder mine kriterier.
F.eks.
var obj = from o in [objects]
          where o.tal > 100
          select o;

foreach ([object] o in obj)
{
  .... kode der behandler o
}

Men det samme resultat kan jeg jo opnå ved søge min samling af objecter igennem, via en foreach/if
F.eks.
foreach ([object] o in [objects])
{
  if (o.tal > 100)
  {
    .... kode der behandler o
  }
}

Er der en af de to ovenstående metoder der er bedre/hurtigere end den anden?
Kunne forestille mig, at der evt. er en masse overflødig overhead ved at benytte LINQ?

Syntes at LINQ er en meget elegant måde at søge mine objecter igennem på, men vil selvfølgelig ikke bruge det blot for at bruge LINQ.

Med venlig hilsen
Jan Amdi Letvad
Avatar billede arne_v Ekspert
13. oktober 2008 - 17:07 #1
Hvis de 2 stykker outlinet kode er dækkende, så ville jeg vælge den sidste.

Fordi du i den første opretter en temporær struktur (om LINQ så materialiserer den eller
ej er er en anden sag), som du ikke skal bruge.

Hvis du skulle bruge den struktur og du i den sidste behandler data ved at flytte over
i en ny collection, så ville den første være bedst.

Hvis din samling er en List<> så ville jeg gøre det på en helt tredie måde !

objects.ForEach( kode som behandler );
Avatar billede arne_v Ekspert
30. oktober 2008 - 02:22 #2
OK ?
Avatar billede jan_amdi Nybegynder
30. oktober 2008 - 08:56 #3
Ok, og tak.
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