Войти
Закрыть

Ascending и Descending сортировка в PriorityQueue

Разработка / .NET C#

Просто пример простого Comparer-а для сортировок

//Descending Sort, Integer
var queue = new PriorityQueue<int, int>(Comparer<int>.Create((x, y) => y - x));

//Ascending Sort, Object
var queue = new PriorityQueue<ObjectA, ObjectB>(Comparer<ObjectB>.Create((x, y) => x.Something.CompareTo(y.Something));

Конвертируем DATE в INT и INT в DATE (MSSQL)

Базы данных / MSSQL

Конвертируем DATE или DATETIME в INT (формата YYYYMMDD)

declare @dt datetime

set @dt = '09-22-2007 15:07:38.850'

select cast(convert(char(8),@dt,112) as int)

Обрезаем дату до минут или до часов в MSSQL

Базы данных / MSSQL

Пример обрезки даты по минуты и по часы:

declare @dt datetime

set @dt = '09-22-2007 15:07:38.850'

select dateadd(mi, datediff(mi, 0, @dt), 0)
select dateadd(hour, datediff(hour, 0, @dt), 0)

Поиск количества нолей факториала N!

Разработка / .NET C#


Просто пример поиска нолей в конце у факториала.

    public int TrailingZeroes(int n) {
        int result = 0;
        while(n!=0){
            result += n/5;
            n = n/5;
        }
        return result;        
    }

Вычисление максимального количества точек принадлежащих одной линии из массива точек C#

Разработка / .NET C#

Дано:
Массив точек на плоскости: points[][]   Xi и Yi.
Надо найти:
Сколько максимально точек принадлежит одной прямой.

Пример:

Исходный массив: points= [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]
Результат: 4

Добавление записей в таблицу с первичным ключом MSSQL (T-SQL)

Базы данных / MSSQL

Как добавить в таблицу данные с Primary Key (когда надо этот первичный ключ игнорировать)

SET IDENTITY_INSERT tableA ON

-- Теперь можно делать список полей с  Primary Key и добавлять записи так:

INSERT Into tableA ([id], [c2], [c3], [c4], [c5] ) 
SELECT [id], [c2], [c3], [c4], [c5] FROM tableB

-- Вот так нельзя "INSERT Into tableA SELECT ........"

SET IDENTITY_INSERT tableA OFF


Округление даты до часа и до минут в  MSSQL TSQL

Базы данных / MSSQL

Пример округления даты до часа и до минут

declare @dt datetime

set @dt = '09-22-2007 15:07:38.850'

select dateadd(mi, datediff(mi, 0, @dt), 0)
select dateadd(hour, datediff(hour, 0, @dt), 0)


Вращение (прокручивание) массива K раз, Rotate Array K times C#

Разработка / .NET C#

Пример прокручивания/вращения массива Array K  раз на  C#

public static void Rotate(int[] nums, int k) {
        int len = nums.Length;
        int cnt = k%len;
        if ((len<2)||(cnt==0)){return;}
        int x = 0;
        int val = nums[x];
        int val_prev = nums[x];
    
            int x_start = x;
            for (int i = 0; i<len;i++)
            {
                x = x+cnt<len?x+cnt:(x+cnt)%len;
                val_prev = nums[x];
                nums[x] = val;
                
                if (x_start == x)
                {
                    x++;
                    val = nums[x];
                    x_start = x;
                }
                else
                {
                    val = val_prev;
                }
            }
    }

Смысл на примере:
Есть массив: [1,2,3,4,5]
Проворачиваем его 3 раза: K=3.
Результат:
[3,4,5,1,2]

Чистка логов базы данных MSSQL

Базы данных / MSSQL

Вообще процесс чистки логов должен проходить планово, и следить за этим и настраивать должен профессиональный админ. Однако бывает так что на вашем казалось бы небольшом девелоперском проекте для тестов логи неожиданно превысили установленный размер и возникла следующая проблема:

Сама проблема:

The transaction log for database 'база_данных' is full due to 'LOG_BACKUP'. 


Проблему разумеется надо решать.

И вот как это делается:

Для обрезки лога используется вот эта команда:

DBCC SHRINKFILE(база_данных_log, 100);


При выполнении этой команды, LOG файл будет обрезан до 100 мегабайт.

Класс для транслитерации предложений на Русском по ГОСТ и ISO на C# под .NET Core

Разработка / .NET C#

Бывает так, что приходится заниматься преобразованием предложения на русском в русский текст но на латинице (транслит), например при отправки СМС для сокращения затрат — поскольку латиницей обычно и влазит больше и стоит дешевле. Или при приведении ссылок для сайта в удобный вид без кириллицы, или просто для пересылки информации для решения проблем с кодировкой таким экзотическим способом, вариантов где это может пригодиться довольно много.

В этой публикации будет приведен пример класса который реализует функционал транслитерации в двух стандартах: ГОСТ и ISO. При желании, разобравшись в коде (он довольно прост и компактен) можно легко добавить и другие стандарты, но приведенные два мне кажутся наиболее используемыми.

В будущее В прошлое

Навигация