我有一个IEnumerable' myobjects'其中myModel结构如下..
public class myModel
{
public string SchemaName { get; set; }
public string PropertyName { get; set; }
public List<string> optionvalues { get; set; }
}
在上面的IEnumerable中,我有一个myModel(比如SchemaName&#39; abc&#39;和PropertyName&#39; xyz&#39;),其中optionvalues为null(count = 0)。
我有一个列表&#39; mylist&#39;其中包含需要在上面的IEnumerable中插入的值,而不是null optionvalues。
如果有人可以指导我如何在mymajects中插入mylist,我将不胜感激,其中SchemaName是&#39; abc&#39;和PropertyName是&#39; xyz&#39;
由于
答案 0 :(得分:0)
var filtered = myobjects.Where(o=>o.SchemaName =="abc" && o.PropertyName == "xyz" && o.optionvalues==null);
foreach (var obj in filtered)
{
obj.optionvalues=mylist;
}
请注意,在此实现中,您的所有对象都将引用相同的列表,如果您在mylist中更改某些内容,它将应用于使用它的所有对象。
答案 1 :(得分:0)
假设myobjects
中只有一个值(或者你只想添加第一个出现的值),那个模式名称和属性名称可以这样做:
var obj = myobjects.Single(x =>
x.SchemaName =="abc" && x.PropertyName == "xyz" && (x.optionvalues == null || x.optionvalues.Count == 0));
obj.optionvalues = mylist;
或
var obj = myobjects.First(x =>
x.SchemaName =="abc" && x.PropertyName == "xyz" && (x.optionvalues == null || x.optionvalues.Count == 0));
obj.optionvalues = mylist;
或者,使用Where
,可能ForEach
var objcoll = myobjects.Where(x =>
x.SchemaName =="abc" && x.PropertyName == "xyz" && (x.optionvalues == null || x.optionvalues.Count == 0)).ToList();
objcoll.ForEach(x => x.optionvalues = mylist);