Ignorare i valori nulli o vuoti

di il
13 risposte

Ignorare i valori nulli o vuoti

È possibile ignorare i valori nulli o vuoti in un oggetto e non crearli?

Ho una funzione che fa il return dei dati di una persona.
L'oggetto che restituisce è di tipo Person che è una classe che ho fatto io con nome, cognome, CF ecc
Se alcuni di questi dati non sono presenti o vuoti voglio cancellarli.

Come posso farlo?
Grazie

13 Risposte

  • Re: Ignorare i valori nulli o vuoti

    Ma che senso avrebbe? E come farebbe un'altra classe a verificare che gli oggetti esistano o no?

    Non potresti fare qualcosa del genere:
        
    class Program
    {
        private static string ID(string nome = null, string secondo_nome = null, string cognome = null, string codice_fiscale = null)
        {
    	string m = null;
    
    	if (!(nome is null)) m += nome + " ";
    	if (!(secondo_nome is null)) m += secondo_nome + " ";
    	if (!(cognome is null)) m += cognome + " ";
    	if (!(codice_fiscale is null)) m += codice_fiscale + " ";
    
    	return m;
       }
       
       static void Main(string[] args)
       {
    	Console.WriteLine(ID(nome : "Mario", cognome : "Rossi"));
       }
    }
  • Re: Ignorare i valori nulli o vuoti

    Avendo tanti campi da gestire, fare così mi sarebbe complicato.
    Mi chiedevo se esiste una funzione per ignorarli al momento del return
  • Re: Ignorare i valori nulli o vuoti

    meme'1992 ha scritto:


    Avendo tanti campi da gestire, fare così mi sarebbe complicato.
    Mi chiedevo se esiste una funzione per ignorarli al momento del return
    E quanto può essere complicato, fossero anche 100 if?

    L'alternativa è usare System.Reflection o System.Dynamic, ma sono comunque soluzione "complicate"
            
            static void Main(string[] args)
            {
                var Persona = new dynamic[2];
    
                Persona[0] = new System.Dynamic.ExpandoObject();
                Persona[0].Nome = "Mario";
                Persona[0].Cognome = "Rossi";
    
                Persona[1] = new System.Dynamic.ExpandoObject();
                Persona[1].Nome = "Luigi";
                Persona[1].Cognome = "Bianchi";
                Persona[1].Codice_Fiscale = "BNCLGU00A01F205L";
    
                for (int i = 0; i < Persona.Length; i++)
                {
                    string s = null;
                    foreach (var property in (IDictionary<String, Object>)Persona[i])
                        s += property.Value + " ";
    
                    Console.WriteLine(s);
                }
            }
  • Re: Ignorare i valori nulli o vuoti

    Grazie!
    Prendo i dati da un database e riempo la uno oggetto di tipo person. La funzione fa poi il return di questo oggetto.
    Vorrei, in fondo, eliminare tutti i valori nulli.

    Usando questi 2 modi che mi hsi indicato eliminerei i valori?
    Grazie
  • Re: Ignorare i valori nulli o vuoti

    Perché posti in più forum contemporaneamente ?
    ***

    E' vietato in questo forum e anche poco corretto ..

    A parte questo, che senso ha la tua richiesta? Non l'ho ancora capito. Se restituisci l'oggetto che senso ha parlare di proprietà da non restituire??
  • Re: Ignorare i valori nulli o vuoti

    meme'1992 ha scritto:


    Grazie!
    Prendo i dati da un database e riempo la uno oggetto di tipo person. La funzione fa poi il return di questo oggetto.
    Vorrei, in fondo, eliminare tutti i valori nulli.

    Usando questi 2 modi che mi hsi indicato eliminerei i valori?
    Grazie
    Ma scusa, dovrai ben fare un check che i valori non siano nulli se fai una query da un database, o no?

    Fai le cose semplici e basta. E' nell'ordine delle cose che un programmatore ogni tanto debba fare delle cose ripetitive...
  • Re: Ignorare i valori nulli o vuoti

    meme'1992 ha scritto:


    È possibile ignorare i valori nulli o vuoti in un oggetto e non crearli?

    Ho una funzione che fa il return dei dati di una persona.
    L'oggetto che restituisce è di tipo Person che è una classe che ho fatto io con nome, cognome, CF ecc
    Se alcuni di questi dati non sono presenti o vuoti voglio cancellarli.

    Come posso farlo?
    Non si e' capito 'na cippa'!

    Tecnicamente non presente e' diverso da vuoto:

    Esempio, se consideri una stringa, "null" e' non presente mentre la stringa di lunghezza zero ("") e' la stringa vuota.

    Ed ora la domanda fondamentale sulla vita, l'universo e tutto quanto: li vuoi cancellare DA DOVE?

    SE la tua idea e' ELMINARE MEMBRI di in'istanza di una classe come, potenzialmente, si puo' fare, ad esempio, in Python, allora

    1) NON SI PUO' fare
    2) NON SI DEVE fare
    3) NON SI FA NEMMENO quando si potrebbe fare

    4) quando lo si fa, si sta facendo "metaprogrammazione", ma qui siamo a livello di progettazione di librerie stra-sofisticate per attivita' ultra-complicate. Robbba da genio del male con 30-anni (TRENTA, NON tre) di esperienza, da progettista di tecnologie per la generazione automatica del codice (15 anni di studi)
  • Re: Ignorare i valori nulli o vuoti

    migliorabile ha scritto:


    ... da progettista di tecnologie per la generazione automatica del codice (15 anni di studi)
    Che nel caso specifico, sono sicuro, è una strada sbagliata ... presa chissà perché ...
  • Re: Ignorare i valori nulli o vuoti

    migliorabile ha scritto:



    4) quando lo si fa, si sta facendo "metaprogrammazione", ma qui siamo a livello di progettazione di librerie stra-sofisticate per attivita' ultra-complicate. Robbba da genio del male con 30-anni (TRENTA, NON tre) di esperienza, da progettista di tecnologie per la generazione automatica del codice (15 anni di studi)
    Vabbè penso che lo scopo sia semplicemente creare un oggetto bello pronto da un JSON e viceversa, ma secondo me alla fine è solo un modo per nascondere i problemi, magari mi sbaglio
  • Re: Ignorare i valori nulli o vuoti

    Weierstrass ha scritto:


    Vabbè penso che lo scopo sia semplicemente creare un oggetto bello pronto da un JSON e viceversa, ma secondo me alla fine è solo un modo per nascondere i problemi, magari mi sbaglio
    E quindi? Un oggetto con tutti i membri valorizzati che problemi pone?
  • Re: Ignorare i valori nulli o vuoti

    Intendevo dire che probabilmente la richiesta era quella di fare una query da database che crei automaticamente un oggetto da solo con tutti i metodi che servono, di modo da potersela cavare con i foreach senza andare a vedere nel dettaglio cosa l'oggetto realmente contenga. Penso che Reflection e Dynamic siano nate per quello
  • Re: Ignorare i valori nulli o vuoti

    Weierstrass ha scritto:


    Intendevo dire che probabilmente la richiesta era quella di fare una query da database che crei automaticamente un oggetto da solo con tutti i metodi che servono, di modo da potersela cavare con i foreach senza andare a vedere nel dettaglio cosa l'oggetto realmente contenga. Penso che Reflection e Dynamic siano nate per quello
    Non ha alcun senso creare un oggetto con i soli membri che servono se ne hai uno fatto allo scopo. A me sembra che l'(ab)uso di Reflection e altro possa solo coprire un difetto di progettazione o un tentativo di complicare un pezzo di codice che non deve esserlo.
  • Re: Ignorare i valori nulli o vuoti

    La penso come te infatti
Devi accedere o registrarti per scrivere nel forum
13 risposte