在c#中ArrayList的排序是比較常見的:
其中有一個PointF數組points,
ArrayList arrayList = new ArrayList();
for (int i = 0; i < points.Length; i++)
{
if(points[i].Y > 0.9f)
arrayList.Add(points[i]);
}
arrayList.Add(points[i]);
//排序
AmplitudeCompare amplitudeCompare =new AmplitudeCompare();
arrayList.Sort(amplitudeCompare);
//排序算法,要繼承IComparer
private class AmplitudeCompare : System.Collections.IComparer
{
public int Compare(object x, object y)
{
if ((Math.Abs(((PointF)x).Y) - Math.Abs(((PointF)y).Y)) > 0.0001f)
return 1;
if((Math.Abs(((PointF)x).Y) - Math.Abs(((PointF)y).Y)) <= -0.0001f)
return -1;
else
return 0;
}
}
posted on 2010-06-12 17:48
漂漂 閱讀(3025)
評論(0) 編輯 收藏 引用 所屬分類:
c#開發