Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [VB.NET] Collection

  1. #1

    [VB.NET] Collection

    Ciao a tutti, ultimamente mi sta prendendo voglia di togliere il namespace di VB6 dai programmi fatti in VB.NET ... qlc problema con le date ma ho risolto

    Purtroppo non avevo mai fatto caso che la "Collection" facesse parte di "Microsoft.VisualBasic.Collection" e quindi il compilatore mi ha dato uno stock di errori.

    Ho cercato un po' in giro fra le classi "System.Collections" e non ho trovato nulla che fosse uguale alla "vecchia" Collection

    Alla fine mi servirebbe, per non stravolgere i programmi, una Collection che mi permettessi di inserire la Key ed il Valore, che non mi sposti l'ordine con cui l'ho inserita e che abbia l'enumerazione sull'insieme, così io sfogliando con un ciclo for i as integer posso eliminare un certo elemento senza che mi vada in exception. :berto:



    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Forse fa al caso tuo il Dictionary

  3. #3
    L'avevo già passato in rassegna ma purtroppo non ho trovato il modo di ciclarlo tramite l'indice

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    puoi usare un (è c# riadattalo)
    codice:
    foreach(KeyValuePair<Tipo1,Tipo2> var in dizionario)
    {
         var.Key //è la chiave di tipo1
         var.Value //è il valore di tipo2
    }

  5. #5
    Originariamente inviato da Stoicenko
    puoi usare un (è c# riadattalo)
    codice:
    foreach(KeyValuePair<Tipo1,Tipo2> var in dizionario)
    {
         var.Key //è la chiave di tipo1
         var.Value //è il valore di tipo2
    }
    Grazie ma questo è un classico ciclo ad oggetti che però non permette di eliminare un certo elemento mentro sto ciclando

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Bè puoi tenerti un riferimento e cancellarlo fuori dal ciclo.. non credo esistano collezioni della system.collection che non utilizzino un enumeratore..

  7. #7
    Per l'ennesima volta vorrei ringrazie FRANCESCO BALENA che accompagna tutti i miei più difficili compiti... nel manualone ho trvato un capitolino abbastanza nascosto dove ho estratto questo:

    codice:
    Public Class ClasseProva(Of TKey, TValue)
    	Inherits System.Collections.Generic.Dictionary(Of TKey, TValue)	
    
    	Private Function GetKey(ByVal index As Integer) As TKey
    		Dim keys(Me.Count - 1) As TKey
    
    		Me.Keys.CopyTo(keys, 0)
    		Return keys(index)
    	End Function
    
    	''' <param name="index">The index of the value to get or set.</param>
    	Default Public Overloads Property Item(ByVal index As Integer) As TValue
    		Get
    			Return Me.Item(GetKey(index))
    		End Get
    		Set(ByVal value As TValue)
    			Me.Item(GetKey(index)) = value
    		End Set
    	End Property
    	
    	''' <param name="index">The index of the element to remove.</param>
    	Public Overloads Function Remove(ByVal index As Integer) As Boolean
    		Return MyBase.Remove(GetKey(index))
    	End Function
    End Class

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    ma scusa, il tuo problema era eliminare una entry della collezione conoscendo la key?

  9. #9

    Re: [VB.NET] Collection

    Originariamente inviato da matpez
    Alla fine mi servirebbe, per non stravolgere i programmi, una Collection che mi permettessi di inserire la Key ed il Valore, che non mi sposti l'ordine con cui l'ho inserita e che abbia l'enumerazione sull'insieme, così io sfogliando con un ciclo for i as integer posso eliminare un certo elemento senza che mi vada in exception. :berto:

    Forse mi ero spiegato male... scusate

  10. #10
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    cmq allora basta un dizionario.. inutile utilizzare classi aggiunte..

    codice:
    if(dizionario.delete(key))
    {
    //kiave-valore rimossi
    }
    else
    {
    //kiave non presente
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.