两个List<>的通用函数

时间:2016-08-30 11:26:58

标签: c# list generics

我有两个List<>与我需要编辑的相同字段。如何为这些列表编写一个通用函数?

public List<?> CutField(List<?> list)
{
    foreach(var element in list)
    {
        element.Field = // ;
    }
    return List<?>;
}

1 个答案:

答案 0 :(得分:0)

最好的方法是使用泛型:

public List<T> CutField<T>(List<T> list) where T : MyInterface
{
    foreach(T element in list)
    {
        element.Field = // ;
    }

    return list;
}

public interface MyInterface 
{ 
    object Field { get; set; } // or whatever datatype you need for the field
}

当然,列表中的所有可能类型都应该实现该接口。

另外,您也可以省略CutField的返回类型,因为您已经修改了作为参数传递的列表。