C#将通用列表传递给方法,然后转换为类型

Ria*_*ney 8 c# generics list

我有一个方法,使用我需要传递给它的列表.

根据我调用此方法的位置,列表的类型不同.

是否可以将列表作为通用列表传递,然后将其转换为某种类型,或者我是否需要为可以使用的每种类型的列表创建参数(见下文)?

public string MyMethod(List<Type1> list1, List<Type2> list2, ...etc )
    {
      switch(someCondition)
        {
          case 1:
           //pass list1 into a method from class1
          break;
          case 2: 
           //pass list2 into a method from class2
         break;

          ...//etc for several more lists
        }
Run Code Online (Sandbox Code Playgroud)

Fab*_*ier 12

而不是使用多个参数制作单个方法,为什么不使用单个List类型创建多个方法?无论如何,您似乎没有从一个List类型到另一个类型共享很多代码.

public string MyMethod(List<int> list)
{
  //do something with list
}

public string MyMethod(List<bool> list)
{
  //do something with list1
}
...
Run Code Online (Sandbox Code Playgroud)


Fab*_*ber 5

你可以创建一个接受这样的泛型类型的泛型函数

public virtual List<T> SelectRecord <T>(int items, IEnumerable<T> list)
    {
        if (items == -1)
            return list.ToList<T>();
        else
            if (items > list.Count<T>())
                return list.ToList<T>();
            else
                return list.Take<T>(items).ToList<T>();
    }
Run Code Online (Sandbox Code Playgroud)

在我的例子中,我将IEnumerable传递给我的函数,它返回一个List(我的对象的类型).我没有指定对象的类型.

我希望它有用.