2011-03-23 32 views
12

¿Existen convenciones/pautas para nombrar matrices asociativas (por ejemplo, Dictionary<TKey, TValue>) en .NET?¿Cómo nombrar un diccionario?

Por ejemplo, hay una mejor manera de nombrar dict en:

var dict = new Dictionary<Foo, Bar>(); 

Algunos nombres que he usado/visto:

foosToBars 
mapFromFooToBar 
barsByFoo 
barsForFoos 

También he visto algunos tipos en el BCL elegir nombres que suenan "más agradables" que no revelan directamente lo que se supone que representan la clave y el valor, como en this method.

¿Qué tal para multimaps (por ejemplo, ILookup<TKey, TElement>)?

EDITAR:

Tal vez mi ejemplo era un poco pobre; No quise centrarme en tipos de la clave y el valor.

¿Qué tal si era:

// key = Name of person, value = Age of person 
var dict = new Dictionary<string, int>(); 

Con los ejemplos actualizados a:

namesToAges 
mapFromNameToAge 
agesByName 
agesForNames 
+0

+1 foosToBars o solo barras – wenqiang

+0

Me gustaría ir a 'barsByFoo', ya que los' Foo's actúan como un índice aquí. Un 'Diccionario ' simplemente sería 'peopleByName'. –

Respuesta

10

que iba a tratar de seguir el ejemplo se ha vinculado a, en el que no nombra el diccionario después de lo que contiene pero usted lo nombra por lo que es por. No toma mucho tiempo para que alguien determine que "dict" es un diccionario que mapea las claves Foo con los valores Bar, pero lo que me gustaría saber es por qué lo está haciendo.

+2

Estoy de acuerdo: el intellisense moderno hace que sea trivial averiguar qué es, pero a menudo es bastante más difícil entender por qué es ... – SqlRyan

+0

Un gran punto: "dale el nombre por lo que es para". Elegí un mal ejemplo que innecesariamente se centró en los * tipos * de la clave y el valor; He actualizado la pregunta. Mi error. – Ani

+0

Estoy de acuerdo. 'Dictionary ageIndex;' lo dice todo. – jgauffin