VB.NET - Comment créer une Lamda d'une variable Arraylist vers String ?

Résolu
Duke49
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
- 5 mars 2011 à 14:30
Duke49
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
- 5 mars 2011 à 16:20
Bonjour,

comment créer une expression Lamda de la variable myFilters qui concaténerait ses entrées pour myBrowse.Filter ?.

    Function ParcourirUnFichier() As String
        Dim myBrowse As OpenFileDialog = New OpenFileDialog
        Dim myFilters As New ArrayList

        myBrowse.Title = "Ajouter un fichier..."
        myFilters.Add("Tous les fichiers (*.*)|*.*")
        myFilters.Add("Executables (*.exe)|*.exe")
        myFilters.Add("Dynamic Link Library (*.dll)|*.dll")
        'LAMDA ? myBrowse.Filter = myFilters.ToArray.ToLookup(Sub() myFilters.Item) ?
        myBrowse.Filter = myFilters.ToArray
        myBrowse.FilterIndex = 1
        myBrowse.RestoreDirectory = True
        If myBrowse.ShowDialog() <> DialogResult.OK Then
            myFilters = Nothing
            Return Nothing
        Else
            myFilters = Nothing
            Return myBrowse.FileName
        End If
    End Function

2 réponses

NHenry
Messages postés
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
161
5 mars 2011 à 14:40
Bonjour,

Changes un peu la déclaration :
Dim myFilters As New List(Of String)


Ensuite pour concaténer le tout :
MaVar=String.Join(myFilters.ToArray,"|"c)

Mon site
3
Duke49
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
4
5 mars 2011 à 16:20
Merci Henry !
Que ton code soi en paix ^^

    Function ParcourirUnFichier() As String
        Dim myBrowse As OpenFileDialog = New OpenFileDialog
        Dim myFilters As New List(Of String)

        myBrowse.Title = "Ajouter un fichier..."
        myFilters.Add("Tous les fichiers (*.*)|*.*|" & ControlChars.Tab)
        myFilters.Add("Executables (*.exe)|*.exe|" & ControlChars.Tab)
        myFilters.Add("Dynamic Link Library (*.dll)|*.dll")
        myBrowse.Filter = String.Join(ControlChars.Tab, myFilters)
        myBrowse.Filter = myBrowse.Filter.Replace(ControlChars.Tab, "")
        myBrowse.FilterIndex = 1
        myBrowse.RestoreDirectory = True
        If myBrowse.ShowDialog() <> DialogResult.OK Then
            myFilters = Nothing
            Return Nothing
        Else
            myFilters = Nothing
            Return myBrowse.FileName
        End If
    End Function
0