Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (11)

Лучшие ответы пользователя

Все ответы (12)
  • Как внутри программы определить куда вывод идет в терминал или в файл?

    @lil_Toady
    Автор заметил что вывод разный, то что он сам направил вывод в файл он в курсе :)

    Узнать пишем ли мы в терминал можно так:
    isatty(fileno(stdout));

    istty находится в io.h, а fileno в stdio.h

    И ls, действительно смотрит если вывод в терминал - то в одну строку, иначе - в несколько:
    https://github.com/coreutils/coreutils/blob/master...
    Ответ написан
    Комментировать
  • Тип данных аналогичный таблице в C#?

    @lil_Toady
    Все верно, вам подойдет struct или class, чтобы описать одну запись (строку), разница между ними будет что первое - value type, не может быть null. И далее любая коллекция, даже простой массив.

    Предположим что вы описали сущность так:
    class Item
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public DateTime Time { get; set; }
    }


    для простоты используем List - простейший динамический список, можно добавлять, удалять и т.п.:
    var timeTable = new List<Item>
    {
      new Item { Id = 1, Title = "Иван Сергеевич", Time = DateTime.Parse("20.05.2019 18:45") },
      new Item { Id = 2, Title = "Петр Николаевич", Time = DateTime.Parse("20.05.2019 16:45") },
    };


    И теперь через Linq (using System.Linq;) можно работать с этими данным, работает на любой коллекции или массиве, внедряющих интерфейс IEnumerable, и предоставляет различные методы типа Where, Min, Max, OrderBy и т.п.
    var ordered = timeTable.OrderBy(item => item.Time); // Получили IEnumerable<Item>  отсортированный по Time


    P.S. Такая запись, более похожая на SQL тоже возможна, но думаю подход с методами будет все же более удобным
    var ordered = from item in timeTable orderby item.Time ascending select item;
    Ответ написан
    2 комментария
  • List c# нужно найти не одинаковые элементы, как это сделать?

    @lil_Toady
    Думаю подойдет Except:
    var diff = current.Except(expected);

    Это выдаст элементы из current, которых нет в expected.

    Можно так же и в обе стороны, чтобы получить элементы которые не пересекаются из обоих списоков:
    var diff = current.Except(expected).Union(expected.Except(current));


    Если для сравнения элементов нужна какая-то особая логика, то нужно будет так же внедрить IEqualityComparer и передавать аргументом в Except.
    Ответ написан
    1 комментарий
  • Кто разъяснит строчку из C# кода?

    @lil_Toady
    Методу Enum.Parse нужно знать тип enum'а, чтобы понять список возможных значений. Для значений не входящих в перечисление будет выкинуто исключение ArgumentException.

    В перечисление DayOfWeek соответственно входят входят Sunday, Monday, Tuesday, Wednesday, Thursday, Friday и Saturday, если введенная вами строка в консоль не будет соответствовать одному из этих значений, то получите исключение.

    В последних версиях стандарта это же самое можно достичь более простым способом, передавая нужный тип как generic аргумент, и не приходится делать приведение типа:
    favDay = Enum.Parse<DayOfWeek>(Console.ReadLine());

    Думаю такая запись и проще для понимания при чтении кода :)
    Ответ написан
  • Как распарсить строку к date в MySQL?

    @lil_Toady
    MySQL считывает вашу дату как %Y-%m-%d, поэтому и считает что год - 10, а дата - 20.

    Чтобы распарсить то что у вас есть в дату, вам нужен не DATE_FORMAT, а STR_TO_DATE:
    STR_TO_DATE('10.12.2010', '%d.%m.%Y')

    Ну и если вы хотите обратно в строку в нужном вам формате, то тогда уже DATE_FORMAT:
    DATE_FORMAT(STR_TO_DATE('10.12.2010', '%d.%m.%Y'), '%Y-%m-%d')
    Ответ написан
    Комментировать