comment initialiser une liste de ExpandoObject ?
Bonjour,
J'ai actuellement le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class Output {
public IEnumerable<dynamic> catList;
public Output(IEnumerable<dynamic> catList) {
this.catList = catList;
}
}
var catList = new[] { new { name = "toto", age = 5 },
new { name = "titi", age = 7 },
new { name = "tata", age = 3 },
new { name = "tutu", age = 4 } }.ToList();
Output out = new Output(catList);
...
var results = out;
foreach (dynamic item in results.catList) {
//utilisation de item.name et item.age
} |
Et je cherche à transformer mon type anonyme dynamic par l'utilisation d'ExpandoObject. Je cherche la manière la plus concise pour déclarer cela. Pouvez-vous m'aider?
Merci d'avance,
[EDIT1]
Ce que je voudrais c'est quelque chose comme ça :
Code:
1 2 3 4
| var catList = new System.Dynamic.ExpandoObject[] { new System.Dynamic.ExpandoObject() { name = "toto", age = 5 },
new System.Dynamic.ExpandoObject() { name = "titi", age = 7 },
new System.Dynamic.ExpandoObject() { name = "tata", age = 3 },
new System.Dynamic.ExpandoObject() { name = "tutu", age = 4 } }.ToList(); |
Mais j'ai l'erreur de compilation "'System.Dynamic.ExpandoObject' does not contain a definition for 'name'" (pareil pour age bien sûr)
Ce qui fonctionne mais que je souhaiterais raccourcir au maximum, c'est ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| List<System.Dynamic.ExpandoObject> catList2 = new List<System.Dynamic.ExpandoObject>();
dynamic NameAge = new System.Dynamic.ExpandoObject();
NameAge.name = "toto";
NameAge.age = 5;
catList.Add(NameAge);
NameAge = new System.Dynamic.ExpandoObject();
NameAge.name = "titi";
NameAge.age = 7;
catList.Add(NameAge);
NameAge = new System.Dynamic.ExpandoObject();
NameAge.name = "tata";
NameAge.age = 3;
catList.Add(NameAge);
NameAge = new System.Dynamic.ExpandoObject();
NameAge.name = "tutu";
NameAge.age = 4;
catList.Add(NameAge); |