【发布时间】:2012-04-11 01:33:43
【问题描述】:
我有一个返回新列表的方法(它与多选答案有关):
public static List<questionAnswer> GetAnswersWithSelections(this Questions_for_Exam__c question)
{
List<questionAnswer> answers = new List<questionAnswer>();
answers.Add(new questionAnswer() { Ordinal = 1, AnswerText = question.AN1__c, Selected = (bool)question.Option1__c });
...
return answers;
}
如果我检查此方法的结果 - 我会看到正确的数据,例如红色 = 假,绿色 = 真,蓝色 = 假
然后我尝试使用 LINQ Where 扩展方法过滤返回的结果:
List<questionAnswer> CorrectSelections = question.GetAnswersWithSelections();
var tmpA = CorrectSelections.Where(opt => opt.Selected = true);
当我实现 tmpA 时,会发生两件事:
- 源列表中的数据发生变化 - 例如红色 = 真,绿色 = 真的,蓝色 = 真
- tmpA 中的数据设置为相同的错误数据 源列表已更改为
有什么想法吗?
【问题讨论】:
-
羞愧地低着头...开始填写麦当劳员工申请表
-
顺便说一句,您的错误代码不会改变源集合;它实际上是在更改存储在集合中的项目。这是一个微妙但重要的区别。
标签: c# linq collections