Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1180 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  équivalent Java List.toArray

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

équivalent Java List.toArray

n°691350
Taz
bisounours-codeur
Posté le 02-04-2004 à 21:59:34  profilanswer
 

voilà j'ai un ArrayList et j'aimerais tout récupéré sous forme de string[]
 
en java, j'aurais fait
 

Code :
  1. List words = new ArrayList();
  2. /* faire semblant de travailler */
  3. return (String[]) words.toArray( new String[0] );


 
mais là en C#, je bloque ... ArrayList.ToArray(Type) me file un Array et je sais pas vraiment quoi en faire, et ArrayList.ToArray() un object[] évidement pas castable ...  
 
biensur, je cherche une solution élégante et rapide, pas l'allocation d'un tableau à la main et cast+recopie pour chaque élément ...

mood
Publicité
Posté le 02-04-2004 à 21:59:34  profilanswer
 

n°691355
HappyHarry
Posté le 02-04-2004 à 22:02:49  profilanswer
 

ben euh ...  
 

Code :
  1. return (string[])words.ToArray(typeof(string));


 
ou words est un ArrayList

n°691357
Taz
bisounours-codeur
Posté le 02-04-2004 à 22:04:33  profilanswer
 

ça marche la convertion Array -> [] ?

n°691361
HappyHarry
Posté le 02-04-2004 à 22:06:05  profilanswer
 

oué
 
edit : ou alors je sais pas comment mon code compile depuis un an [:meganne]


Message édité par HappyHarry le 02-04-2004 à 22:06:34
n°691365
Taz
bisounours-codeur
Posté le 02-04-2004 à 22:06:50  profilanswer
 

youhou, merci ... je capte pas trop ce qu'est Array ... à ben si je suis bête, merci du coup de main ... j'ai un peu de mal, ça n'est pas référencé dans les membres, par contre, quand on lit la définition, ben ça coule de source :D

n°691366
HappyHarry
Posté le 02-04-2004 à 22:07:14  profilanswer
 

[:spamafote]

n°691370
Taz
bisounours-codeur
Posté le 02-04-2004 à 22:09:37  profilanswer
 

bah j'avais pas compris ce qu'était vraiment Array et donc qu'on pouvait le caster

n°691372
HappyHarry
Posté le 02-04-2004 à 22:11:29  profilanswer
 

ben j'sais pas avec quel IDE tu codes, mais l'aide sur ce truc dans visual studio est assez claire, enfin j'avais trouvé ce truc assez facilement [:spamafote]

n°691374
Taz
bisounours-codeur
Posté le 02-04-2004 à 22:11:55  profilanswer
 

je code avec JEdit et je suis sous Linux avec mono

n°691375
HappyHarry
Posté le 02-04-2004 à 22:12:45  profilanswer
 

ouais bon voila quoi [:ddr555]
 
tiens t'as une gentoo toi non ?

mood
Publicité
Posté le 02-04-2004 à 22:12:45  profilanswer
 

n°691376
Taz
bisounours-codeur
Posté le 02-04-2004 à 22:13:30  profilanswer
 

non Debian SID
j'ai autre chose à faire de mon temps CPU (Seti/Boinc :whistle:)

n°691379
HappyHarry
Posté le 02-04-2004 à 22:16:14  profilanswer
 

rah merde, la derniere fois que j'ai voulu merger mono ca a planté :/

n°691380
Taz
bisounours-codeur
Posté le 02-04-2004 à 22:17:30  profilanswer
 

j'ai pas la dernière version 0.31 avec debian, mais ça fonctionne bien.

n°691381
HappyHarry
Posté le 02-04-2004 à 22:21:55  profilanswer
 

j'ressayerai a l'occasion

n°691382
Taz
bisounours-codeur
Posté le 02-04-2004 à 22:22:50  profilanswer
 

tu sais s'il exite quelque chose de standard comme le enumerate de python
 
c'est à dire que tu peux faire un foreach et tu as 2 valeurs
 
object value;
int index;
 
?

n°691383
HappyHarry
Posté le 02-04-2004 à 22:25:16  profilanswer
 

j'crois pas nan
 
y a un GetEnumerator() si tu veux [:spamafote]
 
mais pas de truc comme ca, du moins si je comprends bien

n°691385
HappyHarry
Posté le 02-04-2004 à 22:27:32  profilanswer
 

enfin tu ne sais pas avoir l'index quand tu fais un foreach quoi

n°691390
Taz
bisounours-codeur
Posté le 02-04-2004 à 22:36:58  profilanswer
 

HappyHarry a écrit :

enfin tu ne sais pas avoir l'index quand tu fais un foreach quoi

c'est ça qui est bête :D
enfin bon, j'écrirai un wrapper moi même

n°691417
Taz
bisounours-codeur
Posté le 02-04-2004 à 23:08:59  profilanswer
 

Code :
  1. using System.Collections;
  2. public sealed class Enumerate : IEnumerable
  3. {
  4. private sealed class EnumerateEntry : IEnumerator
  5. {
  6.  private long index = 0;
  7.  private readonly IEnumerator backend;
  8.  public EnumerateEntry(IEnumerator backend)
  9.  {
  10.   this.backend = backend;
  11.  }
  12.  public object Current
  13.  {
  14.   get
  15.   {
  16.    return this;
  17.   }
  18.  }
  19.  public bool MoveNext()
  20.  {
  21.   this.index++;
  22.   return this.backend.MoveNext();
  23.  }
  24.  public void Reset()
  25.  {
  26.   this.index = 0;
  27.   this.backend.Reset();
  28.  }
  29.  public long Index
  30.  {
  31.   get
  32.   {
  33.    return this.index;
  34.   }
  35.  }
  36.  public object Item
  37.  {
  38.   get
  39.   {
  40.    return this.backend.Current;
  41.   }
  42.  }
  43. }
  44. private readonly IEnumerable backend;
  45. public Enumerate(IEnumerable backend)
  46. {
  47.  this.backend = backend;
  48. }
  49. public IEnumerator GetEnumerator()
  50. {
  51.  return new EnumerateEntry(this.backend.GetEnumerator());
  52. }
  53. public static void Main(string[] args)
  54. {
  55.  foreach(EnumerateEntry e in new Enumerate(args))
  56.  {
  57.   System.Console.WriteLine("{0} -> {1}", e.Index, e.Item);
  58.  }
  59. }
  60. }

t'en penses quoi?


Message édité par Taz le 02-04-2004 à 23:10:48
n°691419
HappyHarry
Posté le 02-04-2004 à 23:13:03  profilanswer
 

ma foi, ca me semble pas trop trop mal :jap:

n°691421
Taz
bisounours-codeur
Posté le 02-04-2004 à 23:14:50  profilanswer
 

ben j'accepte toute critique

n°691423
HappyHarry
Posté le 02-04-2004 à 23:16:24  profilanswer
 

j'suis plus en état, mes yeux se ferment ;)

n°691426
HappyHarry
Posté le 02-04-2004 à 23:24:26  profilanswer
 

j'ai regardé de plus pres, je ne crois pas avoir quoi que ce soit a redire
 
j'vais meme me garder ca sous le coude (flemme de le refaire au cas ou :D )
 
edit : ah si ! c'est inadmissible ! :o  
y a pas de System.Console.ReadLine() a la fin du main pour que le pauvre utilisateur de VS que je suis n'aie pas besoin de le rajouter pour que la fenetre DOS reste ouverte :whistle:


Message édité par HappyHarry le 02-04-2004 à 23:26:43
n°691476
Taz
bisounours-codeur
Posté le 03-04-2004 à 01:25:42  profilanswer
 

j'ai un petit souci là : j'ai une classe ou tout est static : un membre static privé et synchronisé et 3/4 fonctions statiques qui utilisent ce membre. comment je peux faire pour parce que des gens s'amusent à instancier ma classe ? non pas que ça soit dangereux, ça ne sert juste à rien puisqu'elle est vide

n°691479
the real m​oins moins
Posté le 03-04-2004 à 01:41:30  profilanswer
 

Taz a écrit :

voilà j'ai un ArrayList et j'aimerais tout récupéré sous forme de string[]
 
en java, j'aurais fait
 

Code :
  1. List words = new ArrayList();
  2. /* faire semblant de travailler */
  3. return (String[]) words.toArray( new String[0] );


 

rien à voir avec le topic, mais passe un array de la longueur de ta Collection quand tu fais ça, tant qu'a faire ;)
(voir l'implementation de toArray pour l'interet)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°691480
Taz
bisounours-codeur
Posté le 03-04-2004 à 01:48:56  profilanswer
 

yep, je sais, je gache un peu mais bon, c'est tellement plus court :D

n°691481
the real m​oins moins
Posté le 03-04-2004 à 02:03:56  profilanswer
 

words.size() [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°691482
Taz
bisounours-codeur
Posté le 03-04-2004 à 02:06:19  profilanswer
 

cai long à écrire :D
 
et puis si c'est déjà prévu, pourquoi je le ferais ?

n°691484
the real m​oins moins
Posté le 03-04-2004 à 02:19:56  profilanswer
 

ben regarde l'implementation tu verras la difference... (me rappelle plus en fait mais bon)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°691486
Taz
bisounours-codeur
Posté le 03-04-2004 à 02:23:59  profilanswer
 

attends, si le code fait pas ça, y a un gros problème non ?
 
si (taille(tableau_donné) < taille(this))
  alors tableau_donné = allouer(taille(this));
fin si;
 
copier(tableau_donné, data(this), taille(this));
return tableau_donné;
 
 
 
d'ailleurs je les trouve ou les sources ?


Message édité par Taz le 03-04-2004 à 02:24:23
n°691488
the real m​oins moins
Posté le 03-04-2004 à 02:26:21  profilanswer
 

ben dans ton jdk [:spamafote]
 
(oui il le fait, mais jsais plus pq j'ai pas le code sous la main là mais me semble que y'a une gross difference si tu passes la bonne taille directement)
(et arrete de me faire douter bordel :o)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°691492
Taz
bisounours-codeur
Posté le 03-04-2004 à 02:38:40  profilanswer
 

j'ai pas les sources dans mon sdk :o et j'ai franchement envie de me ramasser le binaire de merde de sun tout ça pour qu'il me ponde un tar.gz ... (je suis entrain de d/l)
 
 
(et j'ai dépuceler mon blog http://advogato.wimbo.org/person/TazForEver/)

n°691495
Taz
bisounours-codeur
Posté le 03-04-2004 à 02:49:15  profilanswer
 

Code :
  1. public Object[] toArray(Object a[]) {
  2.         if (a.length < size)
  3.             a = (Object[])java.lang.reflect.Array.newInstance(
  4.                                 a.getClass().getComponentType(), size);
  5. System.arraycopy(elementData, 0, a, 0, size);
  6.         if (a.length > size)
  7.             a[size] = null;
  8.         return a;
  9.     }

c'est pas violent quoi :o
 
(edit : j'ai d/l .e .Z pour sparc, c'est la seule arch avec .tar :o)


Message édité par Taz le 03-04-2004 à 02:51:17
n°691653
the real m​oins moins
Posté le 03-04-2004 à 14:33:41  profilanswer
 

bah ça fait un peu de reflection pour rien quoi [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°691770
Taz
bisounours-codeur
Posté le 03-04-2004 à 18:02:19  profilanswer
 

http://advogato.wimbo.org/person/TazForEver/
bon je m'y colles, parce que j'envisages pas un foreach sans des choses un peu avancées :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  équivalent Java List.toArray

 

Sujets relatifs
[eclispe][plugin][java] récuperer le nom de projetcomment imprimer un .TXT en JAVA ??
java fonctionne et pas javaw ??session en java
db2 et java[java]Régler le timeout de déconnexion des sockets
[Java - Forte] Je peux pas passer mes déclarations comme je veux !!![java][sql]connection java/Sql Server
Pb htaccess impossible d'accéder à une applet java avec une page htmlcompilateur java spécial
Plus de sujets relatifs à : équivalent Java List.toArray


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR