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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (collection == null) collection = Rows.Where(r => r.ParentId == 0);
    foreach (var row in collection.Where(r => r.ParentId > 0))
    {
         //немного кода
    }

    Сам писал. Вчера. Трезвый.
    Сейчас вот думаю, а чо эта оно не работает?

    Запостил: kerman, 11 Апреля 2016

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

    • Забыл добавить, это рекурсивная функция, где collection = null по умолчанию. Там где "немного кода" оно вызывает сама себя с потомками.
      Ответить
      • > Where(r => r.ParentId == 0)
        > Where(r => r.ParentId > 0)
        Из-за этого не работает?
        А, ну и бесконечная рекурсия ещё, если в "немного кода" нет условия возврата.
        Ответить
        • Бесконечной рекурсии не будет, если нет циклических референсов. А то, что они теоретически могут быть - это правда, за этим надо следить.
          Только условия возврата там нинада. Оно в себя список детей передаёт (ParentId == Id), если список пуст, то foreach пролетает впустую без дальнейшей рекурсии.
          Ответить

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