簡體   English   中英

在IEnumerable對象中插入列表

[英]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;

或者,使用WhereForEach

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM