Ich habe eine Methode, die eine neue Liste zurück (es bezieht sich auf eine Multiple-Choice-Antwort):LINQ WHERE Methode Quellensammlung verändert
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;
}
Wenn ich das Ergebnis dieser Methode untersuchen - ich sehe die richtigen Daten, z.B Rot = False, Grün = True, Blau = False
ich dann versuchen, das zurückgegebene Ergebnis mit dem LINQ Wo Erweiterung Methode zu filtern:
List<questionAnswer> CorrectSelections = question.GetAnswersWithSelections();
var tmpA = CorrectSelections.Where(opt => opt.Selected = true);
Als ich TmpA materialisieren, 2 Dinge passieren:
- Die Daten in der SOURCE-Liste ändern sich - z Rot = True, Grün = Es stimmt, Blau = True
- Die Daten in TmpA wird auf die gleichen falschen Datensatz , dass die Quellenliste
Irgendwelche Ideen zu geändert wurde?
Hängt Kopf in Schande ... beginnt MacDonalds Personalantragsformular ausfüllen – RobD
Nebenbei ändert Ihr Buggy-Code nicht die Quellensammlung; Es verändert tatsächlich die in der Sammlung gespeicherten Objekte. Dies ist ein subtiler, aber wichtiger Unterschied. – phoog