var response = JObject.Parse(e);
foreach (var item in _wall) {
var yh = from ix in response["response"]
where (int)ix["uid"] == item.from_id
select ix;
if (yh != null) {
item.image_uri = yh.FirstOrDefault()["photo_medium_rec"].ToString(); //EXCEPTION
item.author_name = yh.FirstOrDefault()["first_name"].ToString() + " " + yh.FirstOrDefault()["last_name"].ToString();
}
}
前两项没有例外,但第三项是: 堆栈跟踪:
at iVk.UserPage.get_profiles_info(String e)
at iVk.App.<>c__DisplayClass2.<>c__DisplayClass4.<get_data>b__1()
at System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at System.DelegateПервый этап обработки исключения типа "System.Exception" в приложении System.Windows.dll
Json数据:
{
"response": [
{
"uid": 92026953,
"first_name": "Kristina",
"last_name": "Valkonskaya",
"photo_medium_rec": "http://cs11163.vkontakte.ru/u92026953/d_2de22683.jpg"
},
{
"uid": 36798445,
"first_name": "Марина",
"last_name": "Соболевская",
"photo_medium_rec": "http://cs10575.vkontakte.ru/u36798445/d_c70884c3.jpg"
}
]
}
答案 0 :(得分:3)
你的linq查询总是会返回一个枚举,即使是空的。
也许:
var response = JObject.Parse(e);
foreach (var item in _wall) {
var yh = (from ix in response["response"]
where (int)ix["uid"] == item.from_id
select ix).FirstOrDefault();
if (yh != null) {
item.image_uri = yh["photo_medium_rec"].ToString();
item.author_name = yh["first_name"] + " " + yh["last_name"];
}
}