1. C# / Говнокод #12446

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    List<string> duplicities = new List<string>();
    
          foreach (var localItem in FileCollectionLocal)
          {
            foreach (var remoteItem in FileCollectionRemote)
            {
              if (localItem.FileName == remoteItem.FileName)
              {
                duplicities.Add(localItem.FileName);
              }
            }
          }

    Запостил: taburetka, 18 Января 2013

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

    • Настоящий шарпей должен писать пересечения списков сам, и обязательно, чтобы они работали за время O(n^2). Всякие готовые Intersect'ы для нубья не умеющего в Computer Science.
      Ответить
      • Не удивлюсь, у них множества только в .NET 3.5 появились. Я был в шоке, когда узнал.
        Ответить
        • Не знаешь, не лезь.
          Отродясь в дотнете была библиотека Power Collections, разработанная компанией Wintellect по заказу Microsoft. Бесплатная. Бери и используй.
          Ответить
          • Бгг. Зачем тогда сделали свой Set?
            И как это согласуется с политикой мс - "всё из коробки".
            Ответить
            • >политикой мс
              >"всё из коробки".
              поделил на ноль
              и скажи спасибо, что дали возможность скачивать ПО изкоробочными "средствами"
              Ответить
              • Речь о классах в шарпике, а не скачивании ПО.
                Они туда пытаются напихать как можно больше всякого чтобы люди поменьше использовали сторонние либы.
                Это как в дельфях компоненты.
                Ответить
        • А как я тогда их в 2.0 использовал? Оо
          Ответить
      • неплохое тз для собаки
        Ответить
      • Что-то мне подсказывает, что для листа алгоритмическая сложность такой и останется.
        Ответить
        • Насколько я понял из описаний - там оба Enumerable сваливают в нечто типа хеш-таблички, а затем Enumerable, полученный в результате, вычерпывает оттуда элементы, которые были и там и там. Так что сложность можно оценить как амортизированное O(n) (если принять вставку в хеш-табличку за амортизированное O(1)).

          P.S. Могу ошибаться. Официальное описание мутновато:
          When the object returned by this method is enumerated, Intersect enumerates first, collecting all distinct elements of that sequence. It then enumerates second, marking those elements that occur in both sequences. Finally, the marked elements are yielded in the order in which they were collected.
          Ответить

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