Size: a a a

2020 August 03

МР

Макс Руднев... in С#
а разве firstordefault не будет возвращать null?
источник

МР

Макс Руднев... in С#
Переслано от Влад Горбачёв...
Если использую First - возникает проблема - если нет элемента. который удовлетворяет условию - ловлю ошибку. А если использую FirstOrDefault - по умолчанию он будет брать первый элемент, который и так удовлетворяет заданию.
источник

МР

Макс Руднев... in С#
ну типо если ниче не нашлось
источник

Dm

Dungeon master in С#
Смотря какой тип данный
источник

МР

Макс Руднев... in С#
ссылочный
источник

Dm

Dungeon master in С#
По идее должен default вернуть для типа Т
источник

Dm

Dungeon master in С#
Ссылочный да, а если структура то default который для неё предназначен
источник

Dm

Dungeon master in С#
если верить названию метода
источник

Dm

Dungeon master in С#
Это ещо нужно перепроверить
источник

Dm

Dungeon master in С#
источник

Dm

Dungeon master in С#
Da
источник

Dm

Dungeon master in С#
Я посмотрел
источник

Dm

Dungeon master in С#
там default
источник

Dm

Dungeon master in С#
public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source) =>
           source.TryGetFirst(out bool _);

       public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) =>
           source.TryGetFirst(predicate, out bool _);

       private static TSource TryGetFirst<TSource>(this IEnumerable<TSource> source, out bool found)
       {
           if (source == null)
           {
               ThrowHelper.ThrowArgumentNullException(ExceptionArgument.source);
           }

           if (source is IPartition<TSource> partition)
           {
               return partition.TryGetFirst(out found);
           }

           if (source is IList<TSource> list)
           {
               if (list.Count > 0)
               {
                   found = true;
                   return list[0];
               }
           }
           else
           {
               using (IEnumerator<TSource> e = source.GetEnumerator())
               {
                   if (e.MoveNext())
                   {
                       found = true;
                       return e.Current;
                   }
               }
           }

           found = false;
           return default(TSource);
       }
источник

ВГ

Влад Горбачёв... in С#
Проблема в том, что мне как-раз нужно было отловить то самый элемент, который не удовлетворяет условию. А FirstOrDefault для int нет возвращает null, а возвращает 0, пока Stack<int>, а не Stack<int?>
источник

Dm

Dungeon master in С#
По идее да
источник

ВГ

Влад Горбачёв... in С#
В этом проблема. Так бы я в условии с лёгкостью поставил First(...) != null
источник

ВГ

Влад Горбачёв... in С#
А вот с "0" это уже не получится, так как 0 может быть в моей коллекции
источник

СЕ

Сергей Ермак... in С#
Всем привет
источник

СЕ

Сергей Ермак... in С#
Народ, нужна помощь в восстановлении знаний по шарпу, ввиде задач, кто сможет променторить? Кому не лень и есть желание помочь, напишите мне в личку, со своей стороны гарантирую полную отдачу
источник