Verificare se un oggetto è presente in più liste

di il
3 risposte

Verificare se un oggetto è presente in più liste

Ciao,
Ho messo in piedi una soluzione molto brutta da vedere, cicli su cicli e controlli.

Ho un numero imprecisato di liste (potrebbero arrivarne due ma anche dieci), ogni oggetto della lista ha un codice ed un importo.

Devo verificare se un determinato oggetto (attraverso il codice) è presente in più liste. Se si, l'importo del primo resta mentre devo azzerare quello degli altri presenti nelle altre liste.

Consiglio su come gestire al meglio questo scenario?

Un oggetto potrebbe non essere presente nella prima lista , ma poi potrebbe esserci nella seconda, e così via

3 Risposte

  • Re: Verificare se un oggetto è presente in più liste

    WinstonSmith ha scritto:


    Ho messo in piedi una soluzione molto brutta da vedere, cicli su cicli e controlli.

    Ho un numero imprecisato di liste (potrebbero arrivarne due ma anche dieci), ogni oggetto della lista ha un codice ed un importo.

    Devo verificare se un determinato oggetto (attraverso il codice) è presente in più liste. Se si, l'importo del primo resta mentre devo azzerare quello degli altri presenti nelle altre liste.
    Mostra del codice, anche se "brutto" può far capire meglio il contesto.

    WinstonSmith ha scritto:


    Consiglio su come gestire al meglio questo scenario?
    È difficile (molto) dare consigli perché non è molto chiaro tutto il contesto.

    Come arrivano le n liste? Sono una collezione di liste? O sono separate e fornite in tempi differenti?
    Quanti codici devi cercare? Solo uno? O tanti?
  • Re: Verificare se un oggetto è presente in più liste

    andbin ha scritto:



    È difficile (molto) dare consigli perché non è molto chiaro tutto il contesto.

    Come arrivano le n liste? Sono una collezione di liste? O sono separate e fornite in tempi differenti?
    Quanti codici devi cercare? Solo uno? O tanti?
    Ciclismo una lista di stringhe, con ogni stringa eseguiamo una query che torna una lista di Persone(codice fiscale, importo).
    Al termine del ciclo / varie query bisogna vedere se ci sono elementi con stesso CF nelle varie liste, se si bisogna azzerare l'importo di tutti tranne che di quello con id più alto.

    Con due liste basterebbe un ciclo innestato, ma non sapendo quante liste avrò non so come controllare.

    Per il codice, banalmente vari cicli innestati, ma non funzionerà visto che in partenza non ho info sul numero di liste
  • Re: Verificare se un oggetto è presente in più liste

    Ripeto che purtroppo, senza una visione completa del contesto, è molto difficile rispondere.
    Ma dato che prima dicevi

    WinstonSmith ha scritto:


    Se si, l'importo del primo resta mentre devo azzerare quello degli altri presenti nelle altre liste.
    Allora la primissima cosa che mi verrebbe in mente è di tenere un HashSet<String> che contiene i codici. Quando trovi il codice in una lista, vedi se è nel set. Se non c'è, è la prima occorrenza e lo aggiungi al set. Se c'è, è una occorrenza successiva in altre liste e quindi azzeri l'importo come detto.

    Di più è davvero difficile da dire ...
Devi accedere o registrarti per scrivere nel forum
3 risposte