通过具有数字和字符串的列对DataGridView进行排序

时间:2016-04-28 13:58:54

标签: c# sorting datagridview

所以我有这个数据网格视图,我必须按照具有数字和字符串的列进行排序,我想要做的是先按降序排列数字,然后是字符串(我不要&#39) ; t非常关心排序字符串,只是在数字之后)

我的代码适用于数字,但如果列中有任何字符串,则会给我一个参数异常

DataGridView5.Sort(DataGridView5.Columns("Column8"), System.ComponentModel.ListSortDirection.Descending)

编辑:

假设我的列具有以下值

  • 6
  • 19
  • 1
  • 253
  • 蓝色

我需要它像

那样排序
  • 253
  • 19
  • 6
  • 1
  • 蓝色

1 个答案:

答案 0 :(得分:0)

因此,您似乎首先要将数字排序到顶部,然后按降序对数字进行数字排序。

首先,您需要根据它是否为数字进行排序。您可以使用int.TryParse(或十进制)执行此操作。为此,您需要一个一次性的“out”变量。

因此,如果它可以将字段解析为整数,则按数字0排序。否则按1排序。这会将数字放在顶部。

int parsedNum; 
Sort Descending >> int.TryParse(s, out parsedNum) ? 0 : 1;

要按顺序对数字进行排序,当然需要以数字方式排序。您可以有条件地排序,但您可能必须转换为填充的字符串。

Sort Descending >> int.TryParse(s, out parsedNum) ? s.ToString("000000") : s;