我有一个名为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>
}
答案 0 :(得分:2)
var addressSuggestions = new List<ExpressAddressResult>();
虽然我认为您只想返回结果..它已被转换为预期类型。 忘记了addRange
答案 1 :(得分:1)
您实际添加范围的列表为空,即//span/input[@name='payslipradio' and @value='6']
为空。
因此,在将任何项目添加到此列表之前,请确保AddressSuggestions
已初始化。