Size: a a a

Microsoft Developer Community Chat

2019 October 17

B

Bohdan 🕯 in Microsoft Developer Community Chat
я по-красивому сделал но без одной строки
источник

B

Bohdan 🕯 in Microsoft Developer Community Chat
написал так, чтобы нужно было явно указывать width/height, и замапил всё это в интовые поля ДТОхи, выглядит юзер-френдли
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
если хочешь учесть все нюансы, одной строкой тут по моему не обойтись)
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
если даже рассмотреть сам алгоритм, что есть и что надо:
есть строка
надо получить 2 числа
следовательно надо сначала как-то разделить на два числа, тут можно либо извращаться через Substring либо через Split либо через регулярку, возможно есть еще варианты, но это первое, что в голову пришло.  
дальше надо проверить, что пришли числа, по идее самый выстрый способ это TryParse, можно еще возмользоваться классом Convert, но он плюнет эксепшен в случае некорректного значения, что значит обертка в трай кэтч и т д.
следовательно строчка на парс, пара строк на проверку каждого значения, возможно строка на проверку, что числа 2, а не меньше или не больше, в зависимости от того, каким образом получается эта строка wxh. В общем в одну строку хз) Может я не прав)
источник

B

Bohdan 🕯 in Microsoft Developer Community Chat
Денис Суворов
если даже рассмотреть сам алгоритм, что есть и что надо:
есть строка
надо получить 2 числа
следовательно надо сначала как-то разделить на два числа, тут можно либо извращаться через Substring либо через Split либо через регулярку, возможно есть еще варианты, но это первое, что в голову пришло.  
дальше надо проверить, что пришли числа, по идее самый выстрый способ это TryParse, можно еще возмользоваться классом Convert, но он плюнет эксепшен в случае некорректного значения, что значит обертка в трай кэтч и т д.
следовательно строчка на парс, пара строк на проверку каждого значения, возможно строка на проверку, что числа 2, а не меньше или не больше, в зависимости от того, каким образом получается эта строка wxh. В общем в одну строку хз) Может я не прав)
по поводу регулярных тоже думал, но я решил (а я юзаю веб апи) просто принимать входные значения в виде интовых параметров, куда веб апи сам мапит и валидирует всё что мне нужно
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
я примерно понял о чем ты
источник

G

Gopneg in Microsoft Developer Community Chat
Bohdan 🕯
без двух TryParse в инт
ваще изи
static void Main(string[] args)
   {
     var sw = new Stopwatch();
     var str = "4234x234";

     var range = Enumerable.Range(0, short.MaxValue);

     sw.Restart();
     Parallel.ForEach(range, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount * 2 },
       left =>
       {
         var match =
           from right in range
           where str.Replace($"{left}x{right}", "") == ""
           select (left, right);

         foreach (var m in match)
           Console.WriteLine(m);
       }
     );
     Console.WriteLine(sw.ElapsedMilliseconds);
   }
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
зачем такие сложности?)
источник

G

Gopneg in Microsoft Developer Community Chat
Денис Суворов
зачем такие сложности?)
все по тз!
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
ХД)))
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
Ну да TryParse нету)
источник

G

Gopneg in Microsoft Developer Community Chat
за каких-то 82 секунды перебирает весь диапазон шорта
источник

G

Gopneg in Microsoft Developer Community Chat
для инта наверное лучше машинный интеллект припахать
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
АХахах) Извращенец))
источник

G

Gopneg in Microsoft Developer Community Chat
ну для лонга кластер придется арендовать
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
Gopneg
за каких-то 82 секунды перебирает весь диапазон шорта
если sw уберешь и запустишь в релизе, то возможно будет даже быстрее)
источник

G

Gopneg in Microsoft Developer Community Chat
Денис Суворов
если sw уберешь и запустишь в релизе, то возможно будет даже быстрее)
точно!
источник

G

Gopneg in Microsoft Developer Community Chat
Денис Суворов
если sw уберешь и запустишь в релизе, то возможно будет даже быстрее)
2 секунды в релизе выиграл! так глядишь и кластер надо поменьше будет!
источник

ДС

Денис Суворов in Microsoft Developer Community Chat
))))
источник

B

Bohdan 🕯 in Microsoft Developer Community Chat
Gopneg
ваще изи
static void Main(string[] args)
   {
     var sw = new Stopwatch();
     var str = "4234x234";

     var range = Enumerable.Range(0, short.MaxValue);

     sw.Restart();
     Parallel.ForEach(range, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount * 2 },
       left =>
       {
         var match =
           from right in range
           where str.Replace($"{left}x{right}", "") == ""
           select (left, right);

         foreach (var m in match)
           Console.WriteLine(m);
       }
     );
     Console.WriteLine(sw.ElapsedMilliseconds);
   }
так ты их просто считал и вывел в консоль
источник