Avatar billede danni03 Nybegynder
28. december 2006 - 10:50 Der er 8 kommentarer og
1 løsning

konvertering af objekt type?

Hej jeg har en generic liste der indeholder en specificeret type. Den liste vil jeg konvertere til en generic liste af object. altså,

List<Person> personList = new List<Person>();
List<object> objectList = new List<object>();
objectList = personList;

men den går ikke.

Grunden til dette er at jeg har en metode der har en List<object> som input. Det er det samme metoden gør uanset om det er en liste af personer, brugere... osv.

void myMethod(List<object> objlist)
{
  //noget kode
}

Den metode vil jeg f.eks. kalde med følgende lister:

List<Person> personliste = new List<Person>();
myMethod(personliste);

List<Bruger> brugerliste = new List<Bruger>();
myMethod(brugerliste);


Kan i dygtige programmører hjælpe mig?

Jeg gider næsten ikke til at alle mine objekter skal arve fra samem object - eller implemetere et fælles interface.
Avatar billede dr_chaos Nybegynder
28. december 2006 - 11:14 #1
kan du ikke bruge noget i denne stil:
(pseodu kode)

foreach( Person P in personList )
{
objectList.Add((object)p);
}
Avatar billede danni03 Nybegynder
28. december 2006 - 12:25 #2
Jo, det er også det jeg bruger som en midlertidig løsning lige nu.

Det er bare ikke så smart igen hvis listen indeholder mange poster.

Det kan godt være det er den eneste løsning pga. at generic lister er typestærke.
Avatar billede kalp Novice
28. december 2006 - 12:40 #3
List<Person> personList = new List<Person>();
List<object> objectList = new List<object>();
objectList.AddRange(personList);
Avatar billede danni03 Nybegynder
28. december 2006 - 12:48 #4
den dur ikke kalp, desværre.

man kan ikke konvertere list<person> til list<ovject> - de er typestærke
Avatar billede kalp Novice
28. december 2006 - 13:29 #5
Det er rigtigt ja.. så er det lidt svært selvfølgelig=)
Avatar billede dr_chaos Nybegynder
28. december 2006 - 14:14 #6
AddRange gør i øvrigt præcis det samme som mit kode foreslag, mener jeg.
Hvad er formålet med din metode ?
Avatar billede hmortensen Nybegynder
28. december 2006 - 15:07 #7
Måske sådan her:

List<object> objectList = personList.ConvertAll(new Converter<Person,object>(PersonToObject));

og så en converter metode:

object PersonToObject(Person p)
{
  return (object)p;
}
Avatar billede danni03 Nybegynder
04. januar 2007 - 09:53 #8
hmortensen smid et svar
Avatar billede hmortensen Nybegynder
04. januar 2007 - 09:58 #9
Svar.
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