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

    +126.6

    1. 1
    2. 2
    3. 3
    4. 4
    if (websites.Any() && websites.Count() > 1)
    {
    ....
    }

    Без комментариев

    Запостил: AndrewK, 20 Октября 2009

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

    • Да лучше б уж откомментировал. Что-то непонятно, что тут неправильно.
      Ответить
    • Походу чел озаболился производительностью.
      Он хотел, чтоб Count() лишний раз не вызывался (этот метод имеет сложность O(N) от размера последовательности в общем случае)
      Но как то криво это сделал. Нуно что то типа такого websites.Skip(1).Any()
      Ответить
      • а Skip(1) разве не создаст новый объект?
        как-то это не комильфо (даже при условии, что оно данные скорее всего копировать не станет)
        Ответить
        • создаст. Но выделение памяти под объекта в .NET ОЧЕНЬ быстрая операция, фактически сводящаяся к инкременту указателя (а-ля стек). А вот Count() (если webSites - НЕ коллекция) приведет к проходу по всему списку webSites. А если их там 10000000 ??
          Ответить

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