将对象传递给linq结果

时间:2013-11-13 14:41:38

标签: c# linq list

我从列表中得到一个项目来制作它。

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;
    }
}

但寻找另一种方法。或者有更快的方法吗?

1 个答案:

答案 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查询要查找的对象的索引