• C# - Как удалить символ из строки при посимвольной обработке строки в цикле?

    Исходную строку не трогать, а формировать новую посимвольно. Удаляемые символы можно отмечать булевыми флажками (переменными). То бишь, пока помечено флажком, пропускать, не копируя символы в целевую строку.
    Ответ написан
    Комментировать
  • Как удачно распарсить огромный файл .csv?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Если данных много и их нужно просто добавить (INSERT INTO), то забыть про Entity Framework и использовать SqlBulkCopy.

    Также следует подумать об уменьшении числа столбцов, 617 - это многовато :-)

    Типы придется руками делать, если в CSV не содержится никакой информации о типе данных (например, в заголовке таблицы). Как вариант, можно попробовать определить тип данных автоматически по первой строке данных. Например, если в поле только числа, то считать, что это int (\d+), если числа и есть разделитель, то float ([\d\,\.]+), если дата (\d{1,2}\.\d{1,2}\.\d{2,4}), то datetime (или date), если true или false (true|false), то bool (bit), а по умолчанию varchar. В скобках указан примерный вариант шаблонов регулярных выражения для проверки.
    Ответ написан
    Комментировать
  • Как полностью очистить массив?

    tomnolane
    @tomnolane
    профессиональный разработчик
    используйте статический класс Array с методом Resize от самого msdn
    var myArray = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    Array.Resize(ref myArray, 0);
    Ответ написан
    Комментировать
  • Как полностью очистить массив?

    @kttotto
    пофиг на чем писать
    checkAddDel = new int[0]
    Массив всегда имеет предопределенную длину, которая не меняется, можно только создать новый с нужным размером.
    Ответ написан
    Комментировать
  • Как сделать выпуск софта?

    devspec
    @devspec
    Помогло? Отметь решением
    wixtoolset.org юзайте, например
    Ответ написан
    Комментировать
  • Есть ли научно-фантастические книги с обоснованием событий на уровне "Марсианина"?

    @rsi
    software engineer
    Есть такой автор Анджей Ясинский. Вообще он программист, но написал цикл статей в жанре фентази. Реальной науки как понимаете там мало, но вот магическую науку он описывает очень скрупулезно. Почему я вам это рекомендую? Во первых он описывает все очень логично, ляпов мало. Во вторых он описывает магию как программирование. Но есть и минус, местами книги невероятно занудные)
    Ответ написан
    1 комментарий
  • Есть ли научно-фантастические книги с обоснованием событий на уровне "Марсианина"?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Вообще, немного не в кассу, но не так давно товарищ Юдковский закончил писать "свою версию" Гарри Поттера - Гарри Поттер и Методы Рационального Мышления (Harry Potter and Methods of Rationality). Начиналось это как безобидный фанфик, но в итоге вылилось в огромную книгу. Науки там не зашкаливающее количество, но она там есть. Есть логика, рациональность и отсутствие роялей в кустах.
    Так что могу порекомендовать и её. Читать интересно, а местами - даже смешно, так как есть масса отсылок к оригиналу с намёком на некоторые глупости.
    Ответ написан
    6 комментариев
  • Деление меньшего на большее возвращает ноль. Как исправить?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    нет и нет... почти все слова. почти правильные...

    но суть в том, что если оба операнда int то и результат будет int...

    начните с этого
    Console.WriteLine((1.0 / 7).ToString());
    или
    Console.WriteLine((1 / 7.0).ToString());
    или
    Console.WriteLine((1f / 7).ToString());
    или
    Console.WriteLine((1 / 7d).ToString());
    или
    Console.WriteLine((((double)1) / 7).ToString());
    или
    Console.WriteLine((1 /((float)(7))).ToString());
    для верности сравните с
    Console.WriteLine(((float)(1 / 7)).ToString("0.##"));

    ... обдумайте, почему во последнем примере, приведени к "плавающей точке" запоздало... и будет полное понимание, удачи..

    ps

    ... по быренькому можно тут все проверить - https://dotnetfiddle.net/

    Давно я конечно не писал на C#..

    ..или изменилась правила деления?

    ... а тут огорчу )))... в C# так было всегда (еще точнее - во всех строготипизированых ЯП)
    Ответ написан
    2 комментария
  • Писать ref в C#?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Что то вы путаете, требование, как было, так и осталось.
    Ответ написан
    1 комментарий
  • Как создать систему заданий в игре?

    yegorw
    @yegorw
    Analyst, Web-developer, Python, C#, Ruby
    Создай таблицу с столбцами как было сказано выше, к ней напиши класс с методами:
    1. Определение типа задания (купить, продать, поставить и.т.д), в зависимости от возвращенного значения напиши логику игрока для выполнения)
    2. Тип предмета для действия (тут все просто, будут хранится предметы: стулья, столы, и.т.д. и их количество для выполнения)
    3. Награда за выполнение задания.
    4. Количество предметов у игрока (все то же самое что и в столбце 3)
    5. Процесс выполнения (по желанию) в нём будут высчитываться сколько у игрока нужных предметов и в зависимости от их количества ставится % выполнения.

    Может ещё какие есть, не продумывал детально. Все эти столбцы обернуть методами взаимодействия между собой, для проверки выполнения, и так далее. Пиши, если будут вопросы.
    Ответ написан
    Комментировать
  • Как правильно создать >=1000 потоков?

    @alexs0ff
    Если у Вас компьютер не 1000 ядерный, вам нужны не CPU bound потоки, а IO bound потоки. Поищите асинхронные методы в вашем PostgesQl провайдере (скорее всего они с приставкой Sync)
    Ответ написан
    6 комментариев
  • Когда используете принудительную сборку мусора?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    На моей памяти было два случая:

    1. При использовании memory-profiler. Чтобы посмотреть, что там в памяти осталось.

    2. Для того, чтобы почистить кэш объектов, хранящихся во WeakReference. Чтобы получить список живых объектов.
    Ответ написан
    Комментировать
  • Когда используете принудительную сборку мусора?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    это из серии - не заморачивайтесь, пока реально не упретесь в проблемы, с паузами на сборку мусора

    тогда сама проблема и будет ответом на ваш вопрос

    это НЕ типовые ситуации применения, по тому и не возможны типовые рекомендации. если простые пояснения не понятны - значит просто надо "дорасти" до них собственным опытом различных применений

    (!) не следует путать с обязательным освобождением системных ресурсов - это обычно всегда отмечается в примерах MSDN - некий системный ресурс (типа кисть при рисовании в формах) должен быть обязательно освобожден. это не связано со сборщиком мусора, а связано с тем, что сборщик мусора не управляет системными объектами вообще
    Ответ написан
    2 комментария
  • Хотите задать вопрос администрации Тостера?

    devspec
    @devspec
    Помогло? Отметь решением
    Вот тоже не нравится удаление вопросов с пометкой "нельзя дать однозначный ответ".
    Бывает, напишешь текста пару килобайт в попытке помочь человеку, постишь - а вопроса-то уже нет.
    Может, создать отдельный раздел и переносить такие вопросы туда?
    Ответ написан
    1 комментарий
  • Как правильно называть следующий синтаксис?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Если уж вы добрались до таких сложных вопросов, то пора и книжки читать соответствующие:

    C# Language Specification:
    https://www.microsoft.com/en-us/download/details.a...

    В частности, по обозначенному вами вопросу там написано вот что:
    1.6.1 Members
    The members of a class are either static members or instance members. Static members belong to classes, and instance members belong to objects (instances of classes).


    1.6.5 Fields
    A field is a variable that is associated with a class or with an instance of a class.
    A field declared with the static modifier defines a static field. A static field identifies exactly one storage location. No matter how many instances of a class are created, there is only ever one copy of a static field.
    A field declared without the static modifier defines an instance field. Every instance of a class contains a separate copy of all the instance fields of that class.


    1.6.6 Methods
    A method is a member that implements a computation or action that can be performed by an object or class. Static methods are accessed through the class. Instance methods are accessed through instances of the class.


    1.6.6.3 Static and instance methods
    A method declared with a static modifier is a static method. A static method does not operate on a specific instance and can only directly access static members.
    A method declared without a static modifier is an instance method. An instance method operates on a specific instance and can access both static and instance members. The instance on which an instance method was invoked can be explicitly accessed as this. It is an error to refer to this in a static method.
    The following Entity class has both static and instance members.
    class Entity
    {
    	static int nextSerialNo;
    	int serialNo;
    	public Entity() {
    		serialNo = nextSerialNo++;
    	}
    	public int GetSerialNo() {
    		return serialNo;
    	}
    	public static int GetNextSerialNo() {
    		return nextSerialNo;
    	}
    	public static void SetNextSerialNo(int value) {
    		nextSerialNo = value;
    	}
    }

    Each Entity instance contains a serial number (and presumably some other information that is not shown here). The Entity constructor (which is like an instance method) initializes the new instance with the next available serial number. Because the constructor is an instance member, it is permitted to access both the serialNo instance field and the nextSerialNo static field.
    The GetNextSerialNo and SetNextSerialNo static methods can access the nextSerialNo static field, but it would be an error for them to directly access the serialNo instance field.
    The following example shows the use of the Entity class.
    using System;
    class Test
    {
    	static void Main() {
    		Entity.SetNextSerialNo(1000);
    		Entity e1 = new Entity();
    		Entity e2 = new Entity();
    		Console.WriteLine(e1.GetSerialNo());				// Outputs "1000"
    		Console.WriteLine(e2.GetSerialNo());				// Outputs "1001"
    		Console.WriteLine(Entity.GetNextSerialNo());		// Outputs "1002"
    	}
    }

    Note that the SetNextSerialNo and GetNextSerialNo static methods are invoked on the class whereas the GetSerialNo instance method is invoked on instances of the class.
    Ответ написан
    3 комментария
  • Во сколько обходится валютный контроль?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Если зарабатываем $1000 по новому контракту:

    1. 20% от $500 + 10% от $500 = $150
    2. $30 - wire transfer
    3. ~$15 комиссия банка посредника. . Везде по-разному: в Модульбанке 15 евро, Тиньков банке ноль.
    4. Для тех, кто работает по УСН: 6% от оставшихся денег т.е. 805 * 6% = $48,3
    Я работаю по ПСН, поэтому для меня в этом пункте ноль :)
    5. Комиссия за валютный контроль: 300р ($5) в моём случае.

    Остаётся ~$751,70
    Я бы сюда ещё заложил стоимость обналичивания/обмена этих денег на рубли. Это сильно зависит от банка и тут много вариантов.

    Выводы:
    - выводить реже и большими суммами сразу
    - работать дольше по одному контракту
    - использовать ПСН, если доступен патент по адекватной цене и стабильный доход
    - комбинировать способы обналички/обмена на рубли

    Бонус: не забываем, что есть ещё куча фиксированных платежей: тарифный план банка, патент если работаешь по ПСН, фиксированые платежи для ИП (~31т.р. в 2018г), оформление паспорта сделки для тех, кто работает давно и стабильно.
    Ответ написан
    43 комментария
  • Как правильно получать логи из внешней DLL?

    freeExec
    @freeExec
    Участник OpenStreetMap
    В классе плагина делаете событие в которые будете слать логи, а основная программа подписывается на это событие у всех плагинов.
    Ответ написан
    Комментировать
  • Как модифицировать паттерн декоратор c#, чтобы его можно было удалить?

    Griboks
    @Griboks Куратор тега C#
    Используйте компонентную архитектуру вместо наследования.
    Ответ написан
    2 комментария