关于ListView排序,自定义类中的ICompare参数

我爱吃锅魁 2015-07-01 05:46:01
根据书上的例子,按照抄了个ListView排序的,添加了一个类(ListViewCompare),我用的VS2013,书上没使用接口,网上看了下,别人都使用了ICompare接口,在我使用接口的时候,如下图

ICompare需要带一个参数int T,不知道该怎么用,请知道的告诉下

另,书上使用排序的时候,是这样讲的

实际自己用的时候,报错了,


代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ListView//根据不同的项目,更改成对应项目的名称
{
class ListViewItemComparer : IComparer
{
private int column;
private bool numeric = false;

public int Column
{
get {return column ;}
set { column = value; }

}

public bool Numeric
{
get { return numeric; }
set { numeric = value; }
}

public ListViewItemComparer(int columnIndex)
{
Column = columnIndex;
}

public int Compare(object x, Object y)
{
ListViewItem listX = (ListViewItem)x;
ListViewItem listY = (ListViewItem)y;
if (Numeric)
{
//Convert Column text to numbers before comparing
//If the vonersion fails,just use the value 0.
decimal listXVal, listYVal;
try
{
listXVal = decimal.Parse(listX.SubItems[Column].Text);
}
catch
{

listXVal = 0;
}

try
{
listYVal = decimal.Parse(listY.SubItems[Column].Text);
}
catch
{

listYVal = 0;
}
return decimal.Compare(listXVal, listYVal);
}
else
{
//Keep the column text in its native string format
//and perform an alphavetic comparison.
string listXText = listX.SubItems[Column].Text;
string listyText = listY.SubItems[Column].Text;
return string.Compare(listXText, listXText);
}
}
}
}
...全文
123 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
我爱吃锅魁 2015-07-01
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
你代码里的IComparer是哪来的? 正确的接口是System.Collections.IComparer
非常感谢!
Poopaye 2015-07-01
  • 打赏
  • 举报
回复
你代码里的IComparer是哪来的? 正确的接口是System.Collections.IComparer

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧