我的dataTable中有一些列由DatagridView查看,其中包含一些整数单元格(正面或负面)以及一些单元格,它们的值无法转换为整数。如,空细胞。如何对这样的列数据进行排序。 我试过了
dataTable.Columns.Add("ID", typeof(int));
但是这段代码会产生错误,因为某些单元格值无法转换为整数。
简而言之,我需要在数字排序时忽略字符串。
答案 0 :(得分:-1)
您必须使用object
类型而不是特定类型进行比较,并创建自定义比较函数。
例如:
int Compare(object a, object b)
{
if (a is string && b is string)
{
return ((string)a).CompareTo((string)b);
}
if (a is int && b is int)
{
return ((int)a).CompareTo((int)b);
}
else
{
//Maybe here you also would throw an error if a or b was
//an unexpected type like DateTime
return a.ToString().CompareTo(b.ToString());
}
}
然后使用此比较对网格或列表进行排序。
实施可能比我写的对用户来说更加复杂。