SelectedListObjA.Where(x => x.FieldA == "ABC").FirstOrDefault() = ObjA;
SelectedListObjA = new List<ObjType>();
ObjType ObjA = new ObjType();
任何人都可以向我解释为什么上述陈述是错误的。它正在投掷The Left hand side of an assignment must be a variable...
答案 0 :(得分:5)
FirstOrDefault
的结果是源代码中的第一个元素。所以你得到一个对象。但是只能在variable, property or indexer上执行分配。如果要替换对象,可以使用以下内容:
var tmp = SelectedListObjA.Where(x => x.FieldA == "ABC").FirstOrDefault();
if (tmp != null) { // If tmp is reference type. Would be better to use default()
var index = SelectedListObjA.IndexOf(tmp);
SelectedListObjA[index] = ObjA;
}
答案 1 :(得分:0)
你做不到。
FirstOrDefault可以返回null。你认为会发生什么?是否应将该值添加到列表中?
如果FirstOrDefault将返回一个对象,它将只是一个新变量中对象的引用。对该变量的赋值不会更改列表,只会更改变量指向的引用。名单将保持不变。
如果要替换列表中的项目,则需要找到该项目的索引,并将该索引处的对象替换为新项目。
set.seed(0); Product <- rbinom(100, 20, 0.3)
干杯
托马斯