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。這是我想完成什麼的合理實施?有沒有更優雅的解決方案?在我看來,我可能會使用太多的條件,但我不確定如何解決這個問題。