gpt4 book ai didi

c# - LINQ WHERE 方法更改源集合

转载 作者:太空狗 更新时间:2023-10-29 18:04:44 24 4
gpt4 key购买 nike

我有一个返回新列表的方法(它属于多项选择答案):

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 时,会发生两件事:

  1. SOURCE 列表中的数据发生变化 - 例如红色 = 正确,绿色 =是的,蓝色 = 是的
  2. tmpA中的数据设置为相同的错误数据源列表已更改为

有什么想法吗?

最佳答案

您需要使用 == 而不是 =:

var tmpA = CorrectSelections.Where(opt => opt.Selected == true);

因此,当您搜索条件时,您就是在设置值。这是一个常见的错误,我也上当了:)

关于c# - LINQ WHERE 方法更改源集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com