在编译时不知道类型的情况下创建IEnumerable[]

本文关键字:创建 IEnumerable 情况下 编译 不知道 类型 | 更新日期: 2023-09-27 17:52:18

我在一种情况下,我必须创建一个实例,而不知道在编译时的类型。

我的代码是这样的:
     IEnumerable[] columns = new IEnumerable[5]; 
     columns[0] = new string[]{};

我必须能够在不知道类型(在上面的例子中是字符串)的情况下创建列[0]。

我找不到解决这个问题的方法,欢迎大家提建议。

提前感谢。

在编译时不知道类型的情况下创建IEnumerable[]

可以这样使用泛型:

class MyBusiness<T> where T: new()
{
    public List<T> coll { get; set; }
    public MyBusiness(){
        coll = new List<T>();
    }
    public void DoSth(){
        T t = new T();
        coll.Add(t);
    }
}

您将需要了解泛型。它们允许你创建一个类,在使用它之前不需要知道它的类型是什么。

public class Column<T>
{
    public T Item { get; set; }
}

所以你可以在你的程序中这样使用它:

var columns = new IEnumerable<Column<string>>();