none
ObservableCollection排序 RRS feed

  • 问题

  • public class IPFilterRuleClass : INotifyPropertyChanged
        {
            #region 成员变量定义
            // 以字符串形式保存的ip地址,用于显示
            private string ip;
            public string IP
            {
                get { return ip; }
                set
                {
                    ip = value;
                    LongIP = IPtoLong(value);
                    OnPropertyChanged(new PropertyChangedEventArgs("IP"));
                    OnPropertyChanged(new PropertyChangedEventArgs("LongIP"));
                }
            }
    
            // 以字符串形式保存的url,用于显示
            private string url;
            public string Url
            {
                get { return url; }
                set
                {
                    url = value;
                    OnPropertyChanged(new PropertyChangedEventArgs("Url"));
                }
            }
    
            // 以Long型保存的IP地址,方便向SPI传递
            private long longIP;
            public long LongIP
            {
                get { return longIP; }
                set
                {
                    longIP = value;
                    OnPropertyChanged(new PropertyChangedEventArgs("LongIP"));
                }
            }
            #endregion
    
            #region 构造函数
            /// <summary>
            /// 重载后的构造函数
            /// </summary>
            /// <param name="_ip">IP地址</param>
            /// <param name="_url">Url地址</param>
            public IPFilterRuleClass(string _ip, string _url)
            {
                IP = String.Copy(_ip);
                Url = String.Copy(_url);
                LongIP = IPtoLong(_ip);
            }
    
            /// <summary>
            /// 默认构造函数
            /// </summary>
            public IPFilterRuleClass() { }
            #endregion
    
            #region 方法
            /// <summary>
            /// 将IP地址转换成Long型表示
            /// </summary>
            /// <returns></returns>
            public long IPtoLong(string DestIP)
            {
                string[] ipArr = DestIP.Split('.');
    
                long ip_Int = long.Parse(ipArr[3]) * 256 * 256 * 256 + long.Parse(ipArr[2]) * 256 * 256 + long.Parse(ipArr[1]) * 256 + long.Parse(ipArr[0]);
                return ip_Int;
            }
            #endregion
    
            #region INotifyPropertyChanged 成员
    
            public event PropertyChangedEventHandler PropertyChanged;
            public void OnPropertyChanged(PropertyChangedEventArgs e)
            {
                if (PropertyChanged != null)
                    PropertyChanged(this, e);
            }
    
            #endregion
        }

    我对这个创建了一个ObservableCollection<IPFilterRuleClass> IPFilterRuleList,然后想对这个列表中的元素进行排序,请问应该怎么做?

    IPFilterRuleList.OrderBy<IPFilterRuleClass, string>((x) => (x.IP));不知道为啥不管用

    2010年4月10日 3:08

答案