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));不知道为啥不管用