无法将string []中的FileInfo.Name项添加到List <string>字段

时间:2016-01-19 09:44:47

标签: c# arrays string list nullreferenceexception

我有以下方法,用于将文件名添加到List<string>,以便将所需的文件顺序存储在Program类中:

    private static void ConvertPdfs()
    {
        // Get the word files FileInfo
        FileInfo[] wordFileInfo = DataGrabber.GetHrWordFileInfo(sourceFolder, spSite, policyListName, sortBy);

        foreach (FileInfo file in wordFileInfo)
        {
            // Create the ordered list - this adds each document to the list in the correct oder (sort in CAML query)
            orderedListOfFileNames.Add(file.Name);                
        }           
        Converter convert = new Converter();
        convert.ToPdf(wordFileInfo, targetPdf);
    }

ordereListOfFileNames是同一类中的字段:

 private static List<string> orderedListOfFileNames; // Stil static ...

当方法循环使用wordFileInfo时,我看到了这个异常:

An unhandled exception of type 'System.NullReferenceException' Occurred in PdfConverter.exe
Additional information: Object reference not set to an instance of an object.

但是,我可以看到wordFileInfo包含22个项目,所有项目都有名称。

这里的问题是orderedListOfFileNames尚未正确初始化的事实吗?

2 个答案:

答案 0 :(得分:3)

在使用新的operotor将值添加到列表之前,您需要实例化orderedListOfFileNames,如下所示:

private static List<string> orderedListOfFileNames= new List<string>(); 

答案 1 :(得分:2)

当您执行以下操作时,

实例化不是必需的,因此不是问题。

FileInfo[] wordFileInfo = DataGrabber.GetHrWordFileInfo(sourceFolder, spSite, policyListName, sortBy);

但是当你执行上面的代码时,wordFileInfo变为null,因此DataGrabber.GetHrWordFileInfo(sourceFolder, spSite, policyListName, sortB)会发生一些事情。