C# 将对象传递给linq结果
我从列表中得到一个项目来制作它C# 将对象传递给linq结果,c#,linq,list,C#,Linq,List,我从列表中得到一个项目来制作它 App.CurrentQuestion = App.AllQuestionList[dataSourceRowIndex]; 在创建之后,我将新数据保存到数据库中,并从数据库返回到App.CurrentQuestion,所以App.CurrentQuestion的列表引用中断。我想更新列表并尝试通过linq聚焦所选项目 App.AllQuestionList .Where(q => q.qID == App.CurrentQuestion.qID)
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;
}
}
for(int i=0;i
但我们正在寻找另一种方法。或者有更快的方法吗?您不必做任何事情,因为它是通过引用实现的
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查询找到的对象的索引我猜OP的意思是
传递
,因为assing
听起来确实很痛苦:)我想你误解了LINQ在这方面的作用case@Jamiec基于我认为他所指的问题assigning@DavidPilkington-你可能是对的。我将暂时保留它,如果im错误,让OP更新LINQ。其中(…)
返回一个IEnumerable
,它允许您在原始集合的只读视图中进行迭代。所以你不能更改内容。是的,我认为它是引用类型,数据应该已经同步了。但是我忘了告诉你;我在保存操作后从数据库中获取数据,因此无法继续引用。