Est-ce que quelqu'un sait s'il est possible d'insérer des valeurs dans un dictionnaire C # lorsque je le crée? Je peux, mais je ne veux pas, faire dict.Add(int, "string")
pour chaque élément s'il y a quelque chose de plus efficace comme:
Dictionary<int, string>(){(0, "string"),(1,"string2"),(2,"string3")};
Il y a une page entière sur la façon de faire cela ici:
http://msdn.Microsoft.com/en-us/library/bb531208.aspx
Exemple:
Dans l'exemple de code suivant, un
Dictionary<TKey, TValue>
est initialisé avec des instances de typeStudentName
:
var students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
Dictionary<int, string> dictionary = new Dictionary<int, string> {
{ 0, "string" },
{ 1, "string2" },
{ 2, "string3" } };
Vous étiez presque là:
var dict = new Dictionary<int, string>()
{ {0, "string"}, {1,"string2"},{2,"string3"}};
Vous pouvez également utiliser des expressions Lambda pour insérer des paires Valeur/Valeur à partir d'un autre objet IEnumerable. La clé et la valeur peuvent être n'importe quel type.
Dictionary<int, string> newDictionary =
SomeList.ToDictionary(k => k.ID, v => v.Name);
Je trouve cela beaucoup plus simple puisque vous utilisez les objets IEnumerable partout dans .NET
J'espère que cela pourra aider!!!
Tad.
Vous pouvez instancier un dictionnaire et y ajouter des éléments comme ceci:
var dictionary = new Dictionary<int, string>
{
{0, "string"},
{1, "string2"},
{2, "string3"}
};
Pour que vous sachiez qu'à partir de C # 6, vous pouvez maintenant l'initialiser comme suit
var students = new Dictionary<int, StudentName>()
{
[111] = new StudentName {FirstName="Sachin", LastName="Karnik", ID=211},
[112] = new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317},
[113] = new StudentName {FirstName="Andy", LastName="Ruth", ID=198}
};
Beaucoup plus propre :)
Ce n'est pas généralement recommandé, mais en temps de crise incertaine, vous pouvez utiliser
Dictionary<string, object> jsonMock = new Dictionary<string, object>() { { "object a", objA }, { "object b", objB } };
// example of unserializing
ClassForObjectA anotherObjA = null;
if(jsonMock.Contains("object a")) {
anotherObjA = (ClassForObjA)jsonMock["object a"];
}