请说明此转换扩展方法

时间:2019-07-18 09:05:39

标签: c# .net generics extension-methods ienumerable

我正在尝试理解下面的代码,有人可以简单地告诉我如何转换以及如何转换。特别是这部分让我感到困惑(这个IEnumerable>值)

代码:

public static class ConvertExtensions
{
  public static IEnumerable<TTarget> ConvertAll<TSource, TTarget>(this IEnumerable<IConvertModel<TSource, TTarget>> values) => values.Select(value => value.Convert);
}

1 个答案:

答案 0 :(得分:0)

基本上,对于集合中的每个值,调用T.Convert函数(其中T是目标类型)并返回另一个转换后的值集合。

它不执行任何转换,而是根据输出类型将转换交给另一个函数。

这是执行以下操作的简便方法:

var convertedValues = new List<TTarget>();
foreach(var value in values)
{
   var convertedValue = value.Convert();
   convertedValues.Add(convertedValue);
}
return convertedValues;