C# et les tableaux d'objets anonymes
Que signifie cette expression signifie?
obj.DataSource = new[]
{
new {Text = "Silverlight", Count = 10, Link="/Tags/Silverlight" },
new {Text = "IIS 7", Count = 11, Link="http://iis.net" },
new {Text = "IE 8", Count = 12, Link="/Tags/IE8" },
new {Text = "C#", Count = 13, Link="/Tags/C#" },
new {Text = "Azure", Count = 13, Link="?Tag=Azure" }
};
Surtout ces lignes: nouveau {Texte = "IIS 7"... }
Comment puis-je créer un tableau comme ceci manuellement pour répondre à cette source de données.
- Maintenant, je pense qu'il est sûr de changer la question du titre de "C# tableau multidimensionnel" quelque chose de plus approprié impliquant "tableau d'objets anonymes" ou quelque chose du genre.
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas un tableau multidimensionnel. C'est un tableau d'objets qui ont été créés à l'aide de les initialiseurs d'objets avec les types anonymes.
Tout d'abord, laissez reformater ce code un peu:
Cela ne ressemble pas à un tableau multidimensionnel, mais plutôt comme un tableau de 5 objets. Ces objets à l'intérieur de la matrice sont d'une anonyme de type, créé et initialisé à l'aide de
new { ... }
.Concernant votre question comment vous pouvez créer manuellement un tel éventail fonction de la source de données: vous avez l'air d'être exactement ce que fait le code ci-dessus.
Lin
mot). Néanmoins, je peux pardonner que comme un accident. La mise en forme réduit les erreurs et augmente trivialement des raisons de lisibilité.Ressemble à un tableau de types anonymes.
http://msdn.microsoft.com/en-us/library/bb397696.aspx
Juste pour ajouter: Anonyme types sont convertis par le compilateur pour un objet réel. Donc le code sera modifié de quelque chose d'équivalent de cette (très simplifié, seulement pour montrer que le compilateur va créer une classe réelle):
Et votre code sera modifié pour:
Dans un de mes programmes, j'ai ce type de code (simplifié!):
Cela fonctionne parce que c'est juste une autre classe (j'ai même IntelliSense) en coulisses. L'avantage est évidemment que je viens de sauvé moi-même à partir de la création d'une classe pour cet objet. Dans mon exemple, tous les objets doivent être le même que bien. (Évidemment, de faire ceci pour tous les membres du public serait une mauvaise idée car le compilateur peut changer le nom de la classe anonyme si vous ajoutez/supprimez certains)
C'est d'en faire un nouveau tableau d'objets contenant un groupe d'objets anonymes.
n'est pas la création d'une table de hachage comme syntaxe similaire en php serait, mais plutôt réelle d'un objet réel avec les propriétés de Test, le Comte, et des liens.
Une bonne amorce pour les objets anonymes peuvent être trouvés ici
Vous devriez être en mesure d'utiliser la même syntaxe pour créer de nouvelles structures de ce genre, les valeurs de propriété n'ont pas à être des constantes:
Pour retourner un tableau à partir d'une fonction que j'ai utilisé: