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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
public static T FirstOrDefault<T>(IEnumerable<T> it)
{
   foreach (T v in it)
     return v;
   return default(T);
}

Самодельный FirstOrDefault.

Боюсь даже представить, как у автора будет выглядеть Single

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

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

  • this забыли 🙂 а вообще - это вполне нормальная реализация, нет? (перегрузки без предиката, которая тоже есть в LINQ)
    Ответить
  • Ничё так, кошерненько.
    Оценим оригинальный FirstOrDefault, из Рефлектора:
    public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source)
    {
        if (source == null)
        {
            throw Error.ArgumentNull("source");
        }
        IList<TSource> list = source as IList<TSource>;
        if (list != null)
        {
            if (list.Count > 0)
            {
                return list[0];
            }
        }
        else
        {
            using (IEnumerator<TSource> enumerator = source.GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    return enumerator.Current;
                }
            }
        }
        return default(TSource);
    }
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8