Imports System.Collections.Generic
Public Class Form1
Private Structure parametres
Dim valeur As Double
Dim indices As String
End Structure
Private valeurs() As Double
Private resultats As New List(Of parametres)
Private resultat As parametres
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim chaine As String
Dim trouve As Boolean
ReDim valeurs(0 To 10)
valeurs(0) = 10
valeurs(1) = 10
valeurs(2) = 10
valeurs(3) = 8
valeurs(4) = 10
valeurs(5) = 10
valeurs(6) = 10
valeurs(7) = 14
valeurs(8) = 10
valeurs(9) = 6.917
valeurs(10) = 6.647
TextBox.Text = String.Empty
For i = 0 To valeurs.Length - 1
If resultats.Count = 0 Then
resultat.valeur = valeurs(i)
resultat.indices = i.ToString
resultats.Add(resultat)
Else
trouve = False
For j = 0 To resultats.Count - 1
If resultats(j).valeur = valeurs(i) Then
resultat.indices = resultats(j).indices & "-" & i.ToString
resultat.valeur = resultats(j).valeur
resultats.RemoveAt(j)
resultats.Insert(j, resultat)
trouve = True
Exit For
End If
Next
If trouve = False Then
resultat.valeur = valeurs(i)
resultat.indices = i.ToString
resultats.Add(resultat)
End If
End If
Next
chaine = String.Empty
For i = 0 To resultats.Count - 1
chaine = chaine & resultats(i).valeur.ToString & " : " & resultats(i).indices & Environment.NewLine
Next
chaine = chaine & Environment.NewLine & "Nombre d'occurrences : " & resultats.Count.ToString
TextBox.Text = chaine
End Sub
End Class
Private Class typelist
Public number As Double
Public indexes As New List(Of Integer)
End Class
Private laliste As New List(Of typelist)
Private Sub SetList()
laliste.Clear()
Dim num As Double
Dim t As typelist
Dim found As Boolean
'on lit chaque élément de la colonne
For iter = 0 To dgv.Rows.Count - 1
num = Convert.ToDouble(dgv.Rows(iter).Cells("Column1").Value)
found = False
For Each item In laliste
If item.number = num Then
item.indexes.Add(iter)
found = True
Exit For
End If
Next
If Not found Then
t = New typelist
t.number = num
t.indexes.Add(iter)
laliste.Add(t)
End If
Next
End Sub
dim x as integer
x= lalist.count ' te donne le nombre d'éléments distincts
Private Sub ValeurIndexees() Dim valeurs() As Double = {10, 10, 10, 8, 10, 10, 10, 14, 10, 6.917, 6.647} Dim resultatSansClass = valeurs.Select(Function(v, i) New With {Key .Valeur = v, Key .Index = i}).GroupBy(Function(x) x.Valeur)'sans classe déjà écrite Dim resultatAvecClass = valeurs.Select(Function(v, i) New ValeursIndexees With {.Valeur = v, .Index = i}).GroupBy(Function(x) x.Valeur)'avec une classe End Sub
Public Class ValeursIndexees Public Property Valeur() As Double Public Property Index() As Integer End Class
Private Class typelist
Public number As Double
Public indexes As New List(Of Integer)
'-> rajouter ICI ?
End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Class typelist Public number As Double Public indexes As New List(Of Integer) '-> rajouter ICI ? End Class