AddRange抛出null异常

时间:2016-07-21 15:43:09

标签: c# asp.net list

我有一个名为GetSuggestedAddresses的函数,它的一部分调用一个返回List的函数。我的类中还有一个类型为List的属性。我尝试使用AddRange将我返回的结果添加到我的属性中,但它抛出了一个null异常。我试着单步执行代码,但我有点迷失了。有任何想法吗?这是我的代码 -

 public List<ExpressAddressResult> GetSuggestedAddresses(string format = "xml")
  {
     foreach (RequestArrayRecord address in reqRecords) {
        string result = string.Empty;
        NameValueCollection collection = new NameValueCollection();
        collection.Add("id", AuthKey);
        collection.Add("line1", CleanUpAddress(address.AddressLine1));
        collection.Add("city", address.City);
        collection.Add("state", address.State);
        collection.Add("postalcode", address.Zip);
        collection.Add("maxrecords", MaxSuggestionResults.ToString());
        collection.Add("format", format);
        string parameters = GenerateParameters(collection);

        Uri serviceAddress = new Uri(RequestURL + parameters);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
           if (response != null) {
              using (StreamReader streamReader = new StreamReader(response.GetResponseStream())) {
                 result = streamReader.ReadToEnd();
              }
           }
        }

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(result);

        List<ExpressAddressResult> results = CreateListFromXml(xmlDoc);

        if (results != null) {
           AddressSuggestions.AddRange(results); // Throws Null Exception
        }
     }

     return AddressSuggestions; // This is a property of type List<ExpressAddressResult>
  }

2 个答案:

答案 0 :(得分:2)

var addressSuggestions = new List<ExpressAddressResult>();

虽然我认为您只想返回结果..它已被转换为预期类型。 忘记了addRange

答案 1 :(得分:1)

您实际添加范围的列表为空,即//span/input[@name='payslipradio' and @value='6'] 为空。

因此,在将任何项目添加到此列表之前,请确保AddressSuggestions已初始化。