0
我设计了一个类,它基本上只是一个存储大量数据属性的对象。我已经在课堂上实现了IComparable。类的对象被实例化并存储在List中。在C#中对IComparable对象进行排序
有复杂的在对象的某些字段添加的电平确定哪些字段我排序(有一个层次)的层次结构是这样的:
- 1)名称(在实例中定义) 在实例化(定义)
- 3)网络组
- 2)产品(定义 -实例化后,初始 创建列表后,我回来迭代通过 ,执行计算,和 设置组。)
- 4)日期(在实例中定义)
有几种标志(布尔字段),其确定两个以上的在排序层次结构被使用。
- 5)AllowProductGroupingInd(在实例化)
- 6)AllowDateGroupingInd(在 实例定义)
排序的相对小的名单上的性能(N = 1000)中所定义 差一般约500毫秒。
我不确定我是否正确实施了比较器。 我的方法是这样的:
public int CompareTo(Exposure rfpe)
{
if (Name.CompareTo(rfpe.Name) != 0)
return Name.CompareTo(rfpe.Name);
else
{
if (AllowProductGroupingInd == false)
{
if (ProductId.CompareTo(rfpe.ProductId) != 0)
return ProductId.CompareTo(rfpe.ProductId);
}
if (NetGroup.CompareTo(rfpe.NetGroup) != 0)
return NetGroup.CompareTo(rfpe.NetGroup);
else if (AllowDateGroupingInd == false)
{
if (Date.CompareTo(rfpe.Date) != 0)
return Date.CompareTo(rfpe.Date);
else
return 0;
}
return 0;
}
}
我使用C#3.0,所以我不能使用LINQ。这是我想完成什么的合理实施?有没有更优雅的解决方案?在我看来,我可能会使用太多的条件,但我不确定如何解决这个问题。