【问题标题】:Sequence Contains No Elements Error In C#C#中的序列不包含元素错误
【发布时间】:2017-06-13 00:27:37
【问题描述】:

我在下面的语法中进行 API 调用和错误 sequence contains no elements 我正在使用 .First() 但是当使用 .FirstOrDefault() 时,我得到了同样的错误。应该如何更改此语法以不出现此错误?

public class Root 
{ 
    public List<AI> AI { get; set; } 
} 
public class AI 
{ 
    public List<Dictionary<string, string>> AddressInfo { get; set; } 
} 

public class Main[] 
{ 
    var response = syncClient.DownloadString(url); 
    var returnData = JsonConvert.DeserializeObject<Root[]>(response); 
    foreach (Root ro in returnData) 
    {
        foreach (AI info in ro.AI) 
        { 
            string address = info.AddressInfo.First()["Address1"]); 
            string address2 =  info.AddressInfo.First()["Address2"]); 
            string city = info.AddressInfo.First()["City"]);
            string state =  info.AddressInfo.First()["State"]);
            string zip =  info.AddressInfo.First()["Zip"]);
            Conesole.ReadLine();
        } 
    }
}

【问题讨论】:

    标签: c# .net linq c#-4.0


    【解决方案1】:

    你应该检查一个空对象:

    foreach (AI info in ro.AI) 
    { 
        var addressInfo = info.AddressInfo.FirstOrDefault();
    
        if(addressInfo != null)
        {
            string address = addressInfo["Address1"]; 
            string address2 = addressInfo["Address2"]; 
            string city = addressInfo["City"];
            string state = addressInfo["State"];
            string zip = addressInfo["Zip"];
    
            Console.ReadLine();
        }
    } 
    

    【讨论】:

    • 我不得不删除关闭括号,但除此之外它效果很好!谢谢你
    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多