Си диез / Говнокод #16381 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
string delnbsp(string str)
        {
            int k;
            while (str.IndexOf(" ") >= 0)
            {
                k = str.IndexOf(" ");
                str = str.Remove(k, 6);
            }

            while (str.IndexOf(",") >= 0)
            {
                k = str.IndexOf(",");
                str = str.Remove(k, 1);
            }
            while (str.IndexOf("results") >= 0)
            {
                k = str.IndexOf("results");
                str = str.Remove(k, 7);
            }
            while (str.IndexOf(" ") >= 0)
            {
                k = str.IndexOf(" ");
                str = str.Remove(k, 1);
            }

            return str;

        }

Кандидат решал тестовое задание на с#.

Запостил: dima054 dima054, (Updated )

Комментарии (29) RSS

  • Переписал Replace. А что плохого? Вы имеете наглядно убедится, что логика у него хорошая.

    Въебал минус.
    Ответить
    • Логика есть а вот книжку о стандартной библиотеке не мешало бы дочитать.
      Ответить
    • Так выглядит приятнее:
      String[] ReplaceCodes = new String[] { " ", ",", "results", " ", };
      Int32 k;
      String str = "The quick brown fox jumps over the lazy dog";
      foreach(String code in ReplaceCodes)
      	while((k = str.IndexOf(code)) > -1)
      		str = str.Remove(k, code.Length);
      Ответить
      • var ReplaceCodes = new [] { " ", ",", "results", " ", };
        int k;
        var str = "The quick brown fox jumps over the lazy dog";
        foreach(var code in ReplaceCodes)
        	while((k = str.IndexOf(code)) > -1)
        		str = str.Remove(k, code.Length);

        fixed

        А не смущает что в память врывается хренова туча ненужных строк?
        Ответить
        • >fixed
          1) ReplaceCodes, естественно, должен быть статик.
          2) Тем более var'ы не для этого в .NET добавлены. Так что выброси это глупое правило из решарпера, пока никто не увидел.
          3) Типа int в .NET'е нет. Поработаешь в комманде, где используется несколько языков программирования - поймёшь.
          4) Ты во время рефакторинга потерял " ". Так что код не "fixed", а "broken" 😉

          >А не смущает что в память врывается хренова туча ненужных строк?
          Регулярка уже была. Не интересно. 🙂
          Ответить
          • >> Тем более var'ы не для этого в .NET добавлены.

            О, да, код с варами менее читабелен, тратит больше ресурсов, бла-бла-бла.

            >> Типа int в .NET'е нет.

            Нам для того синонимы даны, что юзать вдоль и поперек их. Ты небось и string только с большой буквой пишешь, и в хаски [char] вместо string.

            >>Ты во время рефакторинга потерял "nbsp;".

            не моя в том вина, что браузер вырезает, экранировать впадлу

            >>ReplaceCodes, естественно, должен быть статик

            Как у тебя?)
            Ответить
            • > не моя в том вина, что браузер вырезает, экранировать впадлу
              Это скорее всего при редактировании комментария все "&хрень;" превращаются в символы.

               
              Ответить
            • >О, да, код с варами менее читабелен, тратит больше ресурсов, бла-бла-бла.
              А то. 1 раз напиши, 100 раз прочитай...

              >Ты небось и string только с большой буквой пишешь
              Ага. Как-то меня напрягает что в шарповой нотации только Enum не переопределили.
              - enum.Parse?
              - Хрен...
              Вот в MCPP, призме или в вб всё ясно и понятно. Без всякого коммерческого диабета.

              >не моя в том вина, что браузер вырезает, экранировать впадлу
              Что это у тебя за браузер такой интересный? Аврора ничего не режет.

              >Как у тебя?)
              Ты-ж фиксишь 😉
              Ответить
  • static string CleanString(String input)
    {
    var deletedItems = (new String[]{" ", ",", "results", " "}).ToList();
    deletedItems.ForEach(eachItem =>{
    input = input.Replace(eachItem, "");
    });
    return input;
    }
    Ответить
    • Говно этот ваш C#, то ли дело PHP:
      function CleanString($input) {
          return str_replace(array(" ", ",", "results", " "), "", $input);
      }
      Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8