Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.net]overloading della funzione contains di arraylist
Forum - C# / VB.NET - [vb.net]overloading della funzione contains di arraylist

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
salve a tutti è da ieri sera che mi scervello su come far funzionare questa funzione contains contenuta nella classe arraylist.

Quello che dovrei fare è praticamente trasformarla e fare in modo dati come parametro nome e cognome di una data persona, mi restituisca se nella lista è presente un oggetto con tali caratteristiche.

io ho fatto in questo modo

Codice sorgente - presumibilmente VB.NET

  1. Class PersonList
  2.     Inherits ArrayList
  3.  
  4. Public Overloads Function Contains(ByVal Nome As String, ByVal Cognome As String) As Boolean
  5.         Dim P As  Persona
  6.         For i As Int32 = 0 To Me.Count - 1
  7.             If (Me(i).Nome = Nome) And (Me(i).Cognome = Cognome) Then
  8.                 P = New Persona(Me(i).Nome, Me(i).Cognome, Me(i).Compleanno)
  9.             End If
  10.         Next
  11.         Return MyBase.Contains(P)
  12.     End Function
  13. End class



Il problema è che se sia che gli passo dei parametri che esistano o meno, mi ritorna sempre false.....

a me non interessa che mi diate la soluzione, mi interessa capire come funziona questa classe, in modo da capire dove sbaglio >.<

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 11:35
Martedì, 02/10/2012
Niente ragazzi ho risolto da solo :yup:

Codice sorgente - presumibilmente VB.NET

  1. Public Overloads Function Contains(ByVal Nome As String, ByVal cognome As String) As Boolean
  2.         Dim ok As Boolean = False
  3.         For i As Int32 = 0 To Me.Count - 1
  4.             If (Me(i).Nome = Nome) And (Me(i).Cognome = cognome) Then
  5.                 ok = True
  6.             End If
  7.         Next
  8.         Return ok
  9.     End Function



Per me potete chiudere ;)

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 13:39
Martedì, 02/10/2012
E perché non fare direttamente così?
Codice sorgente - presumibilmente VB.NET

  1. Public Overloads Function Contains(ByVal P As Persona) As Boolean
  2.         If MyBase.Contains(P) Then Return True
  3.         Return False
  4.     End Function


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:12
Martedì, 02/10/2012
perchè volevo passargli come parametro solamente nome e cognome....dato che la classe persona non ha solo i campi nome e cognome, ma anche altri, mi interessava avere questa funzione che mi restituisse se Pinco pallino c'era, non tutto l'oggetto u.u

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 20:17
Martedì, 02/10/2012
Ma concettualmente Pinco pallino coincide con un oggetto Persona.. Quindi è più corretto verificare se l'oggetto Persona è presente o no.. Io te lo dico, poi vedi tu..

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:24
Martedì, 02/10/2012
sisi lo sò che è la stessa cosa passargli un oggetto, forse è ancora più valida in quando controlla diversi parametri...ma l'eserciziario che ho sotto mano mi chiedeva di passargli come parametronome e cognome D: io mi stavo solo attenendo al testo...comunque dai aggiungo pure la tua versione di contains così ti rendo felice :k:

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 20:51
Martedì, 02/10/2012
che gioia...:_doubt:
Dato che ci sei implementa l'interfaccia Icomparable alla classe Person..
Quella s che sarebbe una soluzione "elegante"...:-|

Ultima modifica effettuata da Renny il 02/10/2012 alle 20:52
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 21:03
Martedì, 02/10/2012
XD purtroppo sono ancora ben lontano dalle interfacce :( altrimenti le aggiungevo volentieri :yup:

PM Quote