我没有太多使用 yield 关键字的经验。我有这些用于类型转换的 IEnumerable<T> 扩展。
我的问题是第一个重载方法是否具有与我从第二种方法获得的相同的收益返回效果?
public static IEnumerable<TTo> ConvertFrom<TTo, TFrom>(this IEnumerable<TFrom> toList)
{
return ConvertFrom<TTo, TFrom>(toList, TypeDescriptor.GetConverter(typeof(TTo)));
}
public static IEnumerable<TTo> ConvertFrom<TTo, TFrom>(this IEnumerable<TFrom> toList, TypeConverter converter)
{
foreach (var t in toList)
yield return (TTo)converter.ConvertFrom(t);
}