我有一个返回一个新的列表(它涉及到选择题的答案)的方法:LINQ WHERE方法改变源集合
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筛选返回的结果,其中扩展方法:
List<questionAnswer> CorrectSelections = question.GetAnswersWithSelections();
var tmpA = CorrectSelections.Where(opt => opt.Selected = true);
当我兑现TMPA,两件事情发生:
- SOURCE列表中的数据发生变化 - 例如红色=真,绿色= 真,蓝=真
- 在TMPA的数据被设置为相同的错误数据 的源列表已更改为
任何想法?
把头埋在耻辱......开始填写麦当劳员工申请表 – RobD 2012-03-27 13:58:43
顺便说一句,你的错误代码不会改变源收集;它实际上正在改变存储在集合中的项目。这是一个微妙而重要的区别。 – phoog 2012-03-27 14:07:37