我用列表视图构建了一个包含 2 列的数据表,我需要按第二列对数据表进行排序。
它看起来像这样:
Name - Points
------------------
John - 10
Peter - 14
Marcus - 9
那么如何按点数排序呢?
解决了!!
private class PointsComparer : IComparer
{
private const int pointsColumnIndex = 1;
public int Compare(object x, object y)
{
ListViewItem listX = (ListViewItem)x;
ListViewItem listY = (ListViewItem)y;
// Convert column text to numbers before comparing.
// If the conversion fails, just use the value 0.
decimal listXVal, listYVal;
try
{
listXVal = Decimal.Parse(listX.SubItems[pointsColumnIndex].Text);
}
catch
{
listXVal = 0;
}
try
{
listYVal = Decimal.Parse(listY.SubItems[pointsColumnIndex].Text);
}
catch
{
listYVal = 0;
}
return (-Decimal.Compare(listXVal, listYVal));
}
}
这对我来说是一种魅力。