将通用列表转换为另一个通用列表的方法

时间:2013-08-08 11:05:18

标签: c# .net list generics

我有List<One>中的数据,并希望转换为List<Two>。 我的代码是

 public static List<T> ListCopy<T>(List<T> input)
    {
        List<T> mylist = new List<T>();
        //Logic Goes here 
        return mylist;
    }

这只是从List<One>List<One>的处理数据 但我希望从List<One>List<Two>处理

    List<One> l = new List<One>();
    List<Two> t = new List<Two>();
    t = ListConvert<Two>(l);

我能为此做些什么?

1 个答案:

答案 0 :(得分:6)

您可以使用LINQ执行此操作,但仍需要提供应该用于转换元素的函数:

public static List<TResult> ListCopy<TSource, TResult>(List<TSource> input, Func<TSource, TResult> convertFunction)
{
    return input.Select(x => convertFunction(x)).ToList();
}

样本用法(简单转换为转换函数)

var t = ListConvert(l, x => (Two)x);