我从列表中得到一个项目来制作它。
App.CurrentQuestion = App.AllQuestionList[dataSourceRowIndex];
在制作完成后,我将新数据保存到数据库并从数据库返回App.CurrentQuestion,因此App.CurrentQuestion的列表引用中断。我想更新列表并尝试通过linq
关注所选项目App.AllQuestionList
.Where(q => q.qID == App.CurrentQuestion.qID)
.FirstOrDefault() = App.CurrentQuestion;
但我收到错误,例如“ 作业的左侧必须是变量,属性或索引器 ”
我可以使用这种方法
for (int i = 0; i < App.AllQuestionList.Count; i++)
{
if (App.AllQuestionList[i].qID == App.CurrentQuestion.qID)
{
App.AllQuestionList[i] = App.CurrentQuestion;
break;
}
}
但寻找另一种方法。或者有更快的方法吗?
答案 0 :(得分:2)
你不应该做任何事情,因为它是参考。
App.CurrentQuestion = App.AllQuestionList[dataSourceRowIndex];
您在App.CurrentQuestion
中所做的任何更改都应反映在App.AllQuestionList
App.AllQuestionList[App.AllQuestionList.IndexOf(App.AllQuestionList.
.Where(q => q.qID == App.CurrentQuestion.qID)
.First())] = App.CurrentQuestion;
编辑:您可以使用IndexOf查找LINQ查询要查找的对象的索引