Raggruppare Elementi di un Array bidimensionale

venerdì 01 marzo 2013 - 00.20
Tag Elenco Tags  VB.NET

Earthquake Profilo | Junior Member

Ciao a tutti ho il seguente problema chi può darmi una mano?
Ho un array bidimensionale di questo tipo mioArray(4,3) as object.
nella prima colonna ci sono dei valori stringa, nella seconda colonna ci sono dei valori di tipo intero, nella terza ci sono valori di tipo double.
Ho la necessita di sommare il valore della colonna 3 a parità di colonna 1 ed il risultato deve essere un nuovo array.
Esempio:
"Pippo",1,10.30
"Pluto",2,30.40
"Pippo"5,15.70
"Pluto",10,60.60

il risultato dovrebbe essere :
"Pippo", 26
"Pluto", 91

Grazie in anticipo.

AntCiar Profilo | Expert

ciao.

La cosa più semplice è utilizzare un dizionario avente come chiave il tuo valore stringa e come valore un oggetto double in cui fai la somma.

Ti dichiari un dizionario:


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

poi cicli il tuo array e all'interno del ciclo ci metti questo:

If Not gruppoDic.ContainsKey("aaaa") Then gruppoDic.Add("aaaa", 0.0) Else gruppoDic("aaaa") = gruppoDic("aaaa") + 0.0 End If

dove al posto di "aaaa" ci devi passare il valore stringa dell'array che stai ciclando e al posto di 0.0 ci devi passare il valore double dell'array
Nota: la chiave del dizionario ("aaaa") è case sensitive. Quindi se per te Pippo, PIPPO, pippo sono la stessa cosa allora quando passi la chiave facci un bel .ToUpper() altrimenti se sono entità diverse lascialo così.



al termine del cliclo se vuoi vedere i risultati puoi fare:

Dim k As String Dim msg As String = "" For Each k In gruppoDic.Keys msg = k & ": " & gruppoDic(k).ToString() & vbCrLf Next MsgBox(msg)
Cristian Barca

Earthquake Profilo | Junior Member

Ok Grazie per la risposta!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5