如何在列表通用中添加列名?

时间:2010-06-14 08:20:54

标签: c# .net visual-studio visual-studio-2008

 class MyExcelSheets
    {
        public List MyColumnNames { get; set; }
    }

如何在“List MyColumnNames”中添加Excel数据的列名。它返回给我对象引用未设置为对象的实例。

我想在上面的课程中使用:

     myexcelSheet = new MyExcelSheets();
                myexcelSheet.MyColumnNames = new MyExcelSheets().MyColumnNames;
                foreach (DataColumn col in dTable.Columns)
                  myexcelSheet.MyColumnNames.Add(col.ColumnName.ToString());

我该如何解决?

错误:NullReferenceException

2 个答案:

答案 0 :(得分:2)

假设public List MyColumnNames { get; set; }实际上声明为public List<string> MyColumnNames { get; set; }

行:

myexcelSheet.MyColumnNames = new MyExcelSheets().MyColumnNames;

应该是:

 myexcelSheet.MyColumnNames = new List<string>;

虽然在构造函数中执行此操作通常会更好。

答案 1 :(得分:1)

代码myexcelSheet.MyColumnNames = new MyExcelSheets().MyColumnNames;只获取对属性的引用,但它不会实例化。

添加代码

this. MyColumnNames = new List<string>;
静态构造函数中的

将解决问题,因为这部分代码将在运行时被调用,我们不必担心实例化状态转移对象(就像在这种情况下一样)

如,

static MyExcelSheets(){this. MyColumnNames = new List<string>; }

谢谢, 维杰