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

Windows Forms Discussion :

Passer des list of() en parametre


Sujet :

Windows Forms

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut Passer des list of() en parametre
    Bonjour,

    j'ai un probleme en apparence assez simple et pourtant je n'ai pas la moindre idée de comment le résoudre.

    J'aimerais une fonction qui me transforme une liste (list of(xxx)) en une chaine de caracteres string.
    par exemple une liste d'entiers qui contient les éléments 1, 2 et 3 serait transformée en la chaine de caracteres "1;2;3".

    C'est vraiment basique, sauf que je voudrais implementer ca pour une liste quelconque, c'est à dire que j'aimerais que ca marche pour une liste d'entier, pour une liste de string, pour une liste de n'importe quoi.

    et je suis bloqué car je ne sais pas comment passer en parametre de ma fonction une liste de "n'importe quoi".

    Private function transformer( Byval liste as ????)

    ou alors il faudrait que je cree une classe qui hérite de l'objet list of, je ne sais pas.

    Si quelqu'un sait comment faire ou a une idée je suis preneur.

    Merci beaucoup pour votre aide.

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Pourquoi pas une fonction elle même générique ?

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Public Overridable Function StringRepresentation(Of T)(ByVal lst As List(Of T)) As String
        If lst Is Nothing Then
            Throw New ArgumentNullException("lst")
        Else
            Dim result As String = ""
            For i As Integer = 0 To lst.Count - 1
                If ReferenceEquals(lst(i), Nothing) Then
                    result += "null" ' cas pathologique 
                Else
                    result += lst(i).ToString()
                End If
     
                If i + 1 < lst.Count Then
                    result += ";"
                End If
            Next
     
            Return result
        End If
    End Function

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Pour faire encore plus générique, tu peux faire un fonction qui prend en paramètre un IEnumerable... Toutes les collections et tableaux implémentent cette interface.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Public Overridable Function StringRepresentation(ByVal lst As IEnumerable) As String
        If lst Is Nothing Then
            Throw New ArgumentNullException("lst")
        Else
            Dim result As New StringBuilder()
            For Each item As Object In lst
                If result.Length > 0 Then
                    result += ";"
                End If
                If ReferenceEquals(item, Nothing) Then
                    result += "null" ' cas pathologique 
                Else
                    result += item.ToString()
                End If
            Next
     
            Return result.ToString()
        End If
    End Function

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    et avec un peu de chance sur le framework 3.5 il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Public Function ConcatListe(Of T)(ByVal lst As List(Of T)) As String
            Return Join(lst.Cast(Of Object).ToArray, ";")
        End Function
    il est meme possible de faire des extend de classe pour que l'intellisense propose de faire .ConcatList sur tous les List(Of T)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Merci a vous tous pour vos réponses, je les note soigneusement et je teste tout ca lundi.
    Je mets déjà le résolu parce que je pense qu'avec ces exemples j'arriverais sans probleme à faire ce que je veux.

    Merci pour le coup de pouce

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

Discussions similaires

  1. Comment passer des listes à SQLITE
    Par Jiyuu dans le forum Bibliothèques tierces
    Réponses: 6
    Dernier message: 20/06/2009, 08h50
  2. passer des parametres à l'application
    Par wickramben dans le forum JWS
    Réponses: 2
    Dernier message: 12/04/2006, 20h07
  3. Passer des infos d'une zone de liste à une autre
    Par Rinecka dans le forum Access
    Réponses: 1
    Dernier message: 09/01/2006, 12h59
  4. Réponses: 2
    Dernier message: 04/10/2005, 21h54
  5. [script SQL]comment passer des parametres a un scrip sql?
    Par la7su dans le forum Langage SQL
    Réponses: 5
    Dernier message: 23/03/2005, 11h55

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