Toon posts:

[C#] Casting not valid*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ontloop dit probleem nu al best vaak. En denk van ik kan best de mede devvers is om hulp vragen.

Als ik een arraylist heb wil ik deze casten naar een bijvoorbeeld ListViewItem array. Maar dat levert mij een CastNotVailed exception op.

C#:
1
2
3
4
5
6
private ListViewItem[] Blaat()
{
     ArrayList items = new ArrayList();
     items.Add(new ListViewItem("blaat"));
     return (ListViewItem[])items.ToArray();
}


Bij de return klapt ie dus op ze bek... iemand een id?

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
tuurlijk, een ArrayList is toch ook geen Array van ListViewItems?

Dat er intern in een ArrayList nou een array van objecten wordt gebruikt maakt het nog niet meteen zo dat je het naar een array kan casten.

Als je het toch in een ListViewItem array wilt stoppen moet je denk gebruik maken van de CopyTo method die alle collections ( of iedergeval een array ) hebben.

edit:

Ik zie net dat je al gebruik maakt van de ToArray methode, dan geld nog steeds dat je een Object[] terug krijgt, en die kan je niet zomaar naar een ListViewItem[] casten omdat het gewoon een ander type is. Je zou natuurlijk wel gebruik kunnen maken van de andere ToArray implementatie die een Type als parameter neemt wat dan wel een ListViewItem[] returnt.

[ Voor 34% gewijzigd door Woy op 12-02-2004 14:43 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

Waarom moet je echt een array van ListViewItem hebben en is een Arraylist niet goed?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
't staat gewoon in de help hoor:

code:
1
return (ListViewItem[])items.ToArray(typeof(ListViewItem));


Die ToArray method heeft dus een overload waarmee je kan aangeven welk type de objecten hebben die je wilt casten.

[ Voor 36% gewijzigd door whoami op 12-02-2004 14:43 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 12 februari 2004 @ 14:42:
't staat gewoon in de help hoor:

code:
1
return (ListViewItem[])items.ToArray(typeof(ListViewItem));


Die ToArray method heeft dus een overload waarmee je kan aangeven welk type de objecten hebben die je wilt casten.
Maar het werkt nu, bedankt!!! _/-\o_

[ Voor 18% gewijzigd door Verwijderd op 12-02-2004 16:30 ]