Avatar billede dr_nielsen Nybegynder
28. juli 2009 - 11:42 Der er 2 kommentarer og
1 løsning

fællesmængde af to lister

Hvis jeg har to lister og jeg gerne vil ende med en reultat der kun indeholder fællesmængden af de to, er der så en snedig måde at gøre det på?

List<Int32> listA = new List<int>();
            listA.Add(1);
            listA.Add(2);
            listA.Add(3);
            listA.Add(4);

List<Int32> listB = new List<int>();
            listB.Add(3);
            listB.Add(4);
            listB.Add(5);
            listB.Add(6);

            List<Int32> resultList = new List<int>();
            Indeholder 3 og 4
Avatar billede aaberg Nybegynder
28. juli 2009 - 12:02 #1
Her er en måde som giver ganske god performance:

List<Int32> listA = new List<int>();
listA.Add(1);
listA.Add(2);
listA.Add(3);
listA.Add(4);

List<Int32> listB = new List<int>();
listB.Add(3);
listB.Add(4);
listB.Add(5);
listB.Add(6);

Dictionary<int, object> dictA = new Dictionary<int, object>();

foreach (int item in listA)
{
    dictA.Add(item, null);
}

List<int> resultList = new List<int>();

foreach (int item in listB)
{
    if (dictA.ContainsKey(item))
    {
        resultList.Add(item);
    }
}
Avatar billede dr_nielsen Nybegynder
28. juli 2009 - 12:04 #2
Ja ok tak, fandt selv den her.

using System.Linq;
List<Int32> resultList = ListA.Intersect(ListB);
Avatar billede aaberg Nybegynder
28. juli 2009 - 12:08 #3
Ja, LINQ har mange triks! Denne var ny for mig :-)
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