[英]Inserting a list in an IEnumerable of objects
我有一個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'abc'和PropertyName'xyz'),其中optionvalues為null(count = 0)。
我有一個列表“ mylist”,其中包含需要在上述IEnumerable中插入的值以代替空optionvalues的值。
如果有人可以指導我如何在SchemaName為'abc'和PropertyName為'xyz'的myobjects中插入mylist,我將不勝感激。
謝謝
var filtered = myobjects.Where(o=>o.SchemaName =="abc" && o.PropertyName == "xyz" && o.optionvalues==null);
foreach (var obj in filtered)
{
obj.optionvalues=mylist;
}
請注意,在此實現中,所有對象都將引用同一列表,如果更改mylist中的某些內容,它將應用於使用該對象的所有對象。
假設在具有該模式名稱和屬性名稱的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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.