在 C# 中创建动态属性
在 C# 中,可以为类创建静态属性。然而,可能会出现在运行时向对象动态添加附加属性的要求。此外,可能还需要排序和过滤功能。
添加动态属性
要实现此目的,可以使用字典。例如,以下代码使用字典来存储动态属性:
Dictionary<string, object> properties = new Dictionary<string, object>();
这允许使用方括号语法向对象动态添加属性:
properties["propertyName"] = value;
排序和过滤
为了实现排序和过滤,提供的示例利用了 LINQ 的Where选择用于过滤的方法,以及用于排序的自定义比较器类。下面是一个示例:
// 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);
通过采用这些技术,可以在运行时向对象添加动态属性以及排序和过滤功能。
以上是如何在 C# 中添加、排序和筛选动态属性?的详细内容。更多信息请关注PHP中文网其他相关文章!