Я хотел бы написать расширение для IEnumerable, похожее на Select called TrySelect, TrySelect проигнорирует выбор любого элемента, в котором выбрано Func, генерирует исключение.TrySelect on IEnumerable
У меня есть следующее, которое работает.
public static IEnumerable<TResult> TrySelect<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector)
{
List<TResult> ret = new List<TResult>();
foreach (TSource input in source)
{
try
{
ret.Add(selector(input));
}
catch { }
}
return ret;
}
Я хотел бы знать, как написать расширение без использования списка таким образом, чтобы сохранить IEnumerable поведение не заселять элементы, пока они не называются.
Ловля исключения, независимо от типа является рискованным. Подумайте о создании этого родословного в конкретном типе исключения или рефакторинг базовой функции. – TrueWill