1

我从列表中得到一个项目来处理它。

App.CurrentQuestion = App.AllQuestionList[dataSourceRowIndex];

在 manuplations 之后,我将新数据保存到数据库并从数据库返回到 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;
    }
}

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

4

1 回答 1

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

于 2013-11-13T14:44:32.273 回答