Ho bisogno di scrivere una funzione in C# che utilizzi una java.util.Map e la converta in un dizionario C#. (Il progetto su cui sto lavorando utilizza IKVM utilizzare alcune classi Java in C#.)Il modo migliore per convertire una mappa Java in un dizionario in C#
Ho provato con un ciclo foreach (ad es foreach (java.util.Map.Entry in map)
o foreach (string key in map.keySet())
per aggiungere l'elemento per elemento Dizionario, ma sembra che Java Maps and Sets non è enumerabile
Qual è il mio approccio migliore qui? Devo usare un java.util.Iterator? (Non sono contrario all'utilizzo di Java Iterator per principio, ma sembra che ci dovrebbe essere un modo più pulito, più "c-sharp-y".) Immagino di poter ottenere il set di chiavi, utilizzare il metodo Set toArray(), e iterare attraverso che, ma ancora una volta, non si sente "c-sharp- y ". Devo solo superare me stesso e fare una di quelle cose, o c'è un wa migliore y? (? O, di queste due opzioni, che è più efficiente in termini di tempo/spazio preso)
Per riferimento, ecco un abbozzo di quello che sto cercando di fare:
public Dictionary<string, object> convertMap(java.util.Map map)
{
Dictionary<string, object> dict = new Dictionary<string, object>();
foreach (String key in map.keySet()) // doesn't work; map is not enumerable
dict.Add(key, map.get(key));
return dict;
}
Come potete mescolare Java e C#? – jsalonen
@jsalonen di [IKVM] (http://www.ikvm.net/) – I4V
Oh, giusto, buon punto. Lo aggiungerò alla domanda. – firechant