2015-07-15 3 views
0

У меня есть данные с колонкой «Тест». Колонка «Тест» содержит следующие значения, которые при отсортированные по DataView.Sort = "Test ASC", вкладываются в следующем порядке:DataView.Sort with Integer In Varchar

Data 1 
Data 10 
Data 11 
Data 12 
Data 13 
Data 14 
Data 15 
Data 16 
Data 17 
Data 18 
Data 19 
Data 2 
Data 20 
Data 21 
Data 22 
Data 23 
Data 24 
Data 25 
Data 26 
Data 27 
Data 28 
Data 29 
Data 3 
Data 30 
Data 31 

и так далее.

Ожидаемый результат будет:

Data 1 
Data 2 
Data 3 
Data 10 
Data 11 
Data 12 
Data 13 
Data 14 
Data 15 
Data 16 
Data 17 
Data 18 
Data 19 
Data 20 
Data 21 
Data 22 
Data 23 
Data 24 
Data 25 
Data 26 
Data 27 
Data 28 
Data 29 
Data 30 
Data 31 

Есть ли средство для сортировки против DataTable, чтобы правильно отсортировать значения в кардинальной порядке?

+0

Почему у вас есть целое число в варчаре? Вы пробовали целое число? – Paparazzi

+0

Извлечь целочисленные значения в отдельный целочисленный столбец и отсортировать по этому столбцу. Или, если необходимо, несколько столбцов. –

ответ

1

При добавлении источника сетки необходимо добавить следующее форматирование:

foreach myNumber in numbers { 
    list.add(String.Format("{0:000}", myNumber);) 
} 

Это добавит вам значение, как

Data 001 
Data 002 
Data 003 
Data 010 
Data 011 
Data 012 
Data 013 
Data 014 
Data 015 
Data 016 
Data 017 
Data 018 
Data 019 
Data 020 
Data 021 
Data 022 
Data 023 
Data 024 
Data 025 
Data 026 
Data 027 
Data 028 
Data 029 
Data 030 
Data 031 

Больше информации на String formatting in C#.

Удачи