Confrontare dati di due ArrayList CSHARP

martedì 24 agosto 2010 - 19.03
Tag Elenco Tags  C#  |  .NET 3.0  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008  |  MySQL 5.5

jlsweb Profilo | Newbie

Ciao a tutti sono nuovo nel vostro Forum, avrei bisogno di un vostro aiutino.
Sto usando C# visual studio 2008

Il mio problema è il seguente:
Ho due Arraylist chiamate: NumOrdinati e NumFatt

NumOrdinati ho dei valori progressivi 1 to NumMax
[1][2][3][4][5][6]

NumFatt sono i numeri delle fatture registrate sul db mysql
[2][3][6][7]

La differenza dovrebbe essere [1][4][5] che sono poi i numeri MANCANTI.
E' da tutto il pomeriggio che ci provo e non combino una, mi potete dare una mano per favore?.

Mio obiettivo è quello di visualizzare i numeri delle fatture mancanti.
Spero di essere stato chiaro, rimango in attesa di una vostra gentile risposta.

Questo è il codice usato:

ArrayList NumFatt = new ArrayList();
ArrayList NumOrdinati = new ArrayList();

for (int cont = 1; cont <= MaxNumFatt; cont++)
{
NumOrdinati.Add(cont.ToString()); //Numeri progressivi
}

foreach (DataRow dr in dt.Rows)
{
NumFatt.Add(dr["iNumFattura"].ToString());
}

AntCiar Profilo | Expert

Ciao.

L'arrayList contiene il metodo 'contains' che serve per verificare se un oggetto X è contenuto nell'arraylist.

dai una occhiata a quanto segue. Ho implementato il confronto doppio.

ciao ciao

ArrayList NumFatt = new ArrayList(); ArrayList NumOrdinati = new ArrayList(); //Creo questo nuovo arraylist per memorizzare i valori non trovati ArrayList NumMancanti = new ArrayList(); //Con questo ciclo valorizzo l'arraylist NumOrdinati per poter fare delle prove for (int i = 1; i <= 6; i++) { NumOrdinati.Add(i); } //valorizzo Numfatt per le prove NumFatt.Add(2); NumFatt.Add(3); NumFatt.Add(6); NumFatt.Add(7); //Con questo ciclo controlli i valori di NumFatt non presenti in NumOrdinati foreach (int obj in NumFatt) { if (!NumOrdinati.Contains(obj)) { NumMancanti.Add(obj); } } //Questa parte di codice è solo di test if (NumMancanti.Count > 0) { string tmp = "valori di NumFatt non presenti in NumOrdinati\r\n"; foreach (int obj in NumMancanti) { tmp = tmp + obj.ToString() + ", "; } NumMancanti.Clear(); MessageBox.Show(tmp); } //----- fine test //Con questo ciclo controlli i valori di NumOrdinati non presenti in NumFatt foreach (int obj in NumOrdinati) { if (!NumFatt.Contains(obj)) { NumMancanti.Add(obj); } } //Questa parte di codice è solo di test if (NumMancanti.Count > 0) { string tmp = "valori di NumOrdinati non presenti in NumFatt\r\n"; foreach (int obj in NumMancanti) { tmp = tmp + obj.ToString() + ", "; } NumMancanti.Clear(); MessageBox.Show(tmp); } //----- fine test
Cristian Barca

jlsweb Profilo | Newbie

Evvvaiiiii funziona tutto alla perfezione. Sei un grande! Grazie
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5