Attualmente sto cercando di scrivere un metodo Dump() da LinqPad equivalente a Iin C# per il mio personale divertimento. Sto passando da Java a C# e questo è un esercizio piuttosto che un requisito aziendale. Ho quasi tutto funzionante tranne che per il dump di un dizionario.Rif. C# - Come posso sapere se l'oggetto o è di tipo KeyValuePair e quindi lanciato?
Il problema è che KeyValuePair è un tipo di valore. Per la maggior parte degli altri tipi di valore, chiamo semplicemente il metodo ToString, ma questo è insufficiente in quanto KeyValuePair può contenere Enumerables e altri oggetti con metodi ToString indesiderati. Quindi ho bisogno di allenarmi se si tratta di KeyValuePair e poi di lanciarlo. In Java potrei usare generici jolly per questo, ma non conosco l'equivalente in C#.
La tua ricerca, dato un oggetto o, determina se è un KeyValuePair e chiama Stampa sulla sua chiave e valore.
Print(object o) {
...
}
Grazie!
Stavo proprio per suggerire esattamente quello .. :) Buona risposta – Tigraine
Sorprendente risposta, grazie mille – Logan
l'uso della riflessione qui influirà molto sulle prestazioni? – JDandChips