用程序的属性可能没办法,我不清楚。你可以用比如xml文件的属性来弄。

解决方案 »

  1.   

    Dictionary<string, object> 可以吗?
    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
     
    namespace ConsoleApplication1 { 
     
        class ObjectWithProperties { 
            Dictionary<string, object> properties = new Dictionary<string,object>(); 
     
            public object this[string name] { 
                get {  
                    if (properties.ContainsKey(name)){ 
                        return properties[name]; 
                    } 
                    return null; 
                } 
                set { 
                    properties[name] = value; 
                } 
            } 
     
        } 
     
        class Comparer<T> : IComparer<ObjectWithProperties> where T : IComparable { 
     
            string m_attributeName; 
     
            public Comparer(string attributeName){ 
                m_attributeName = attributeName; 
            } 
     
            public int Compare(ObjectWithProperties x, ObjectWithProperties y) { 
                return ((T)x[m_attributeName]).CompareTo((T)y[m_attributeName]); 
            } 
     
        } 
     
        class Program { 
     
            static void Main(string[] args) { 
     
                // create some objects and fill a list 
                var obj1 = new ObjectWithProperties(); 
                obj1["test"] = 100; 
                var obj2 = new ObjectWithProperties(); 
                obj2["test"] = 200; 
                var obj3 = new ObjectWithProperties(); 
                obj3["test"] = 150; 
                var objects = new List<ObjectWithProperties>(new ObjectWithProperties[]{ obj1, obj2, obj3 }); 
     
                // filtering: 
                Console.WriteLine("Filtering:"); 
                var filtered = from obj in objects 
                             where (int)obj["test"] >= 150 
                             select obj; 
                foreach (var obj in filtered){ 
                    Console.WriteLine(obj["test"]); 
                } 
     
                // sorting: 
                Console.WriteLine("Sorting:"); 
                Comparer<int> c = new Comparer<int>("test"); 
                objects.Sort(c); 
                foreach (var obj in objects) { 
                    Console.WriteLine(obj["test"]); 
                } 
            } 
     
        } 
      

  2.   

    明明写个属性就能连声明带程序全都搞定,你还要搞一堆xml来声明什么呢?是省事还是拿你的公司项目在耍呢?
      

  3.   


    public class student
    {
      private string name;
      private string number;  public string Name
      {
      get{return name;}
      set{name=value;}
      }
       
      public string Number
      {
      get{return number;}
      set{nnumber=value;}
      }
      
       public Dictionary<string,object> DynamicProps{get;set;}    public student(){ DynamicProps = new Dictionary<string,object>();}
    }  
      

  4.   

    为什么不考虑做个Dictionary来存值呢?就算实现了动态属性, 你使用的时候怎么使用呢?难道不断地反射吗?