IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] Comment créer un byte[] d'un ArrayList ?


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 191
    Points : 158
    Points
    158
    Par défaut [C#] Comment créer un byte[] d'un ArrayList ?
    Bonjour à tous,

    Voilà, comment puis-je faire pour obtenir un tableau de byte à partir d'un ArrayList contenant des bytes ??? J'ai bien tester la méthode ToArray de la classe ArrayList sans succès...

    Merci d'avance...

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Je n'ai pas trouvé de méthode à la fois simple & souple pour le faire.

    Conclusion, je l'ai faite moi même. Dans le code qui suit, on suppose que tous les objets de monArrayList sont du même type, MaStructure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MemoryStream str=new MemoryStream();
    BinaryWriter bw=new BinaryWriter();
    bw.Write(monArrayList.Count);
    foreach(MaStructure s in monArrayList) {
     bw.Write(s.MonChampA);
     bw.Write(s.MonChampB);
     //etc....
    }
    bw.Flush();
    return str.ToArray();
    Ce n'est pas très subtil, mais ça marche bien.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 78
    Points : 51
    Points
    51
    Par défaut
    Je pense qu'un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim tableau() As Byte = monArrayList.ToArray(Byte.MaxValue.GetType)
    pourrait marcher...
    EDIT : oups, je fait du VB alors qu'il faut du C#

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Et çà aussi peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    byte[] tableau = ((byte[])(ByteArrayList.ToArray(typeof(byte))));
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    et pourquoi pas la fonction CopyTo ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    byte[] tabBytes = new byte[arrayList.Count];
     
    arrayList.CopyTo(tabBytes);
    simple efficace et élégant ...
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par dev01
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    byte[] tabBytes = new byte[arrayList.Count];
    arrayList.CopyTo(tabBytes);
    simple efficace et élégant ...
    Mais bon sang mais c'est biensûr
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/06/2008, 15h30
  2. comment transformer un double en byte[]?
    Par pracede2005 dans le forum Langage
    Réponses: 5
    Dernier message: 02/05/2007, 15h06
  3. [VB.NET] Comment effectuer le Checksum de Bytes ?
    Par alx3d dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/02/2006, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo