Así que he estado hurgando un poco con C# últimamente, y todas las colecciones genéricas me tienen un poco confundido. Digamos que quería representar una estructura de datos donde el jefe de un árbol era un par de valores clave, y luego hay una lista opcional de pares clave de valores debajo de eso (pero no más niveles que estos). ¿Sería esto adecuado?¿Mejor implementación para la estructura de datos del par de valores clave?
public class TokenTree
{
public TokenTree()
{
/* I must admit to not fully understanding this,
* I got it from msdn. As far as I can tell, IDictionary is an
* interface, and Dictionary is the default implementation of
* that interface, right?
*/
SubPairs = new Dictionary<string, string>();
}
public string Key;
public string Value;
public IDictionary<string, string> SubPairs;
}
Es solo una simple derivación para pasar datos.
Esto funciona muy bien con una instrucción "using" (similar al typedef antiguo) para ahorrar algo de tipeo y hacer todo más claro. Si usa constantemente e. gramo. el par (cuerda, cuerda) –
KeyValuePair NAME_HERE = new KeyValuePair ("defaultkey", "defaultvalue"); –
HasanAboShally
Para expandir el comentario de @AndreasReiff: 'using NameValuePair = System.Collections.Generic.KeyValuePair;' cerca de la parte superior de cada archivo que necesita una estructura '(string, string)'. Aunque me pareció más conveniente crear una 'clase NameValuePair' en mi espacio de nombres:' public class NameValuePair \t { \t \t KeyValuePair it; \t \t NameValuePair pública (nombre de la cadena, cadena de valor) \t \t { \t \t \t it = nueva KeyValuePair (nombre, valor); \t \t} \t \t cadena pública Nombre {get {return it.Key; }} \t \t cadena pública Valor {get {return it.Value; }} \t} ' –
ToolmakerSteve