können Sie das nicht tun.
FirstOrDefault kann null zurückgeben. Was würdest du passieren lassen? Soll der Wert zur Liste hinzugefügt werden?
Wenn FirstOrDefault wird ein Objekt zurückgeben, es wird nur die Referenz in einer neuen Variable auf das Objekt sein. Eine Zuordnung zu diesen Variablen wird die Liste nicht ändern, sondern nur die Referenz der Variablen zeigen auf. Die Liste bleibt unverändert.
Wenn Sie ein Element in der Liste ersetzen möchten, müssen Sie den Index dieses Elements finden und das Objekt an diesem Index mit Ihrem neuen ersetzen.
var objectToReplace = SelectedListObjA.Where(x => x.FieldA == "ABC").FirstOrDefault();
if (objectToReplace != null)
{
SelectedListObjA[SelectedListObjA.IndexOf(objectToRelplace)] = ObjA;
}
else
{
SelectedListObjA.Add(ObjA);
}
Prost
Thomas
Ich dachte, 'FirstOrDefault()' in einem Objekt zurück? –
Grundsätzlich werde ich ein obj abrufen, wo 'FieldA ==‚ABC'' und das erste Vorkommen wird durch 'ObjA' ersetzt werden. 'ObjA.FieldA' ist zum Beispiel 'CDE' .... Grundsätzlich ist es ein anderes Objekt –
' ObjA = SelectedListObjA.Where (x => x.FieldA == "ABC"). FirstOrDefault() ' – Mairaj