Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
 Аватар для Andrey-MSK
3376 / 2262 / 388
Регистрация: 14.08.2018
Сообщений: 7,673
Записей в блоге: 4

EF6. OrderBy по тектовым полям с числами

02.08.2021, 10:14. Показов 7175. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!!
Ребята, подмогните пожалуйста с вопросом. Как известно OrderBy по текстовому полю сортирует числа как текст. Можно ли как нибудь его заставить при обнаружении чистых чисел сортировать числа как числа, а текст как текст?
Вот пример запроса:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        public async Task<List<DrawSystemReport>> GetDrawSystemReportsAsync(DrawReport drawReport)
        {
            List<DrawSystemReport> drawSystemReports = new List<DrawSystemReport>();
 
            try
            {
                drawSystemReports = await _reportContext.DrawSystemReports
                    .Where(ds => ds.DrawID == drawReport.DrawID)
                    .OrderBy(ds => ds.DrawSystemSheet) // Текстовое поле с номером листа
                    .ToListAsync();
 
                return drawSystemReports;
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Ошибка загрузки данных отчета по листам.", ex);
            }
        }
и его вывод на скрине.
Может можно написать какое-то расширение для OrderBy, которое будет определять что есть что...
Сразу отвечу на вопрос - Почему поле текстовое -> Нумерация листов в чертежах не всегда определяется числом, есть комбинации чисел и текста.

Спасибо за помощь!!!
Миниатюры
EF6. OrderBy по тектовым полям с числами  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.08.2021, 10:14
Ответы с готовыми решениями:

Доступ к полям компонента TTable с большими целыми числами
Как задать при помощи метода Table1-&gt;FieldDefs-&gt;Add(...); и присвоить значение полю компонента TTable с большими целыми числами (порядка...

Работа с тектовым файлом
Подскажите, как можно написать формулу для такой задачи: Из такого 79603871459:65r1ew32as:Porsche911:Aperol0807@193.124.207.143:8000 ...

Работа с тектовым файлом
Ребят помогите. дан текстовый файл. найти кол-во строк, которые начинаются и заканчиваются одной буквой. 90% я знаю как сделать программу....

21
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
02.08.2021, 14:24
Студворк — интернет-сервис помощи студентам
Andrey-MSK, здесь написано, чем можно заменить TRY_CONVERT в MS SQL 2008
https://www.mssqltips.com/sqls... rver-2008/
1
 Аватар для Andrey-MSK
3376 / 2262 / 388
Регистрация: 14.08.2018
Сообщений: 7,673
Записей в блоге: 4
03.08.2021, 09:10  [ТС]
Usaga, Igr_ok, Рядовой, MsGuns, Победил сортировку
Написал Comparer
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
 
namespace MEFCFDAL
{
    public class StringComparer : IComparer<string>
    {
        public int Compare(string x, string y)
        {
            bool isXint = int.TryParse(x, out int ix);
            bool isYint = int.TryParse(y, out int iy);
 
            if (isXint)
                return isYint ? ix - iy : -1;
 
            return isYint ? 1 : string.Compare(x, y, StringComparison.InvariantCulture);
        }
    }
}
и переписал запрос получения данных
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public async Task<List<DrawSystemReport>> GetDrawSystemReportsAsync(DrawReport drawReport)
{
    List<DrawSystemReport> drawSystemReports = new List<DrawSystemReport>();
 
    try
    {
        drawSystemReports = await _reportContext.DrawSystemReports
            .Where(ds => ds.DrawID == drawReport.DrawID)
            //.OrderBy(ds => ds.DrawSystemSheet)
            .ToListAsync();
 
        drawSystemReports = drawSystemReports
            .OrderBy(ds => ds.DrawSystemSheet, new StringComparer())
            .ToList();
 
        return drawSystemReports;
    }
    catch (Exception ex)
    {
        throw new ApplicationException("Ошибка загрузки данных отчета по листам.", ex);
    }
}
Получение коллекции разбил на две части, вначале загружаем данные, потом уже в памяти сортируем их как надо.

Теперь цифирьки сортирует нормально
Спасибо всем за помощь!!!
Миниатюры
EF6. OrderBy по тектовым полям с числами  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.08.2021, 09:10

работа с тектовым документов
Добрый день товарищи. Имеется текстовый файл вида: &quot;Версия 2.5.292.0 Имя Пользователь&quot; Как таковых разделителей нету... Строк...

Сортировка постов по произвольным полям ACF. В разных рубриках по разным полям
Всем доброго дня! Не могу понять каким образом можно реализовать сортировку постов в разных рубриках по разным полям. Пример: ...

Orderby и вложенный from
Читаю книгу по C#. Там есть следующий пример: string arr2 = new string { &quot;gsaf&quot;, &quot;pmsc nvf a vib&quot;, &quot;Abcf&quot;, &quot;fpGmv sk&quot;,...

Вызов OrderBy
Доброе утро, всем форумчанам!! Есть класс на C#: class HuffmanTree { private List&lt;Node&gt; nodes = new...

Не работает Me.OrderBy
Ситуация такая: Сделал ленточную форму, на некоторые элементы которой повесил на клик Me.OrderBy = 'Имя поля связанной таблицы' ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru