摘要:[C#] Converter 泛型委派
C# 要從一個List 轉成另一個List 時,可以用ConvertAll方法來做這之間的轉換,其中使用的就是Converter泛型委派。透過Converter我們也可以自己對特定的物件實作轉換方法。
設計情境
假設從DataTable中取出某個欄位轉換成我們想要的List<T>
設計實作
1.在DataRowCollections上寫個擴充方法
public static List<TOutput> ConvertCollection<TOutput>this DataRowCollection Rows,Converter<Datarow,TOutput> func)
{
List<TOutput> list = new List<TOutput>();
foreach (DataRow item in Rows)
{
list.Add(func.Invoke(item));
}
return list;
}
2.接著就可以使用這個擴充方法轉換我們想要的List<T>,當然轉換的方法實作是交給使用的PG來寫的
List<string> list = dt.Rows.ConvertCollection<string>(
new Converter<DataRow,string>(dr => {
return dr["Field"].ToString();
}));