Création de propriétés dynamiques en C#
En C#, des propriétés statiques peuvent être créées pour une classe. Cependant, il peut être nécessaire d'ajouter dynamiquement des propriétés supplémentaires à un objet au moment de l'exécution. De plus, des capacités de tri et de filtrage peuvent être souhaitées.
Ajout de propriétés dynamiques
Pour y parvenir, un dictionnaire peut être utilisé. Par exemple, le code suivant utilise un dictionnaire pour stocker les propriétés dynamiques :
Dictionary<string, object> properties = new Dictionary<string, object>();
Cela permet l'ajout dynamique de propriétés à l'objet en utilisant la syntaxe entre crochets :
properties["propertyName"] = value;
Tri et filtrage
Pour implémenter le tri et le filtrage, l'exemple fourni utilise les méthodes Where et Select de LINQ pour filtrage et une classe de comparaison personnalisée pour le tri. Voici un exemple :
// Example comparer class for sorting public class Comparer<T> : IComparer<ObjectWithProperties> where T : IComparable { string attributeName; public Comparer(string attributeName) { this.attributeName = attributeName; } public int Compare(ObjectWithProperties x, ObjectWithProperties y) { return ((T)x[attributeName]).CompareTo((T)y[attributeName]); } } // Example of filtering var filteredObjects = from obj in objects where (int)obj["propertyName"] >= 150 select obj; // Example of sorting Comparer<int> comparer = new Comparer<int>("propertyName"); objects.Sort(comparer);
En employant ces techniques, des propriétés dynamiques peuvent être ajoutées à un objet au moment de l'exécution, ainsi que des capacités de tri et de filtrage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!