用于两个List<>的泛型函数

本文关键字:泛型 函数 List 两个 用于 | 更新日期: 2023-09-27 18:04:37

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

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

用于两个List<>的泛型函数

最好的方法是使用泛型:

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的返回类型,因为您已经修改了作为参数传递的列表。