簡體   English   中英

列表集合addRange多個項目

[英]List collection addRange multiple items

到目前為止,我正在使用下面的代碼在列表中添加新項目。

 mItems.Add(new TableItemsClass() { Description = sqlReader["Name"].ToString(),InventoryTransTempID = Convert.ToInt32(sqlReader["InventoryTransTempID"]) });

如何使用與AddRange相同的方法?

 mItems.AddRange(new TableItemsClass() { Description = sqlReader["Name"].ToString(),InventoryTransTempID = Convert.ToInt32(sqlReader["InventoryTransTempID"]) });

使用上面的代碼,我遇到以下錯誤:

CS1503 Argument 1: cannot convert from 'WiOrderAndroid.TableItemsClass to System.Collections.Generic.IEnumerable<WiOrderAndroid.TableItemsClass>

AddRange期望將IEnumerable作為參數,但是您要傳遞T。要解決此問題,只需將其傳遞給列表:

mItems.AddRange(
    new List<TableItemsClass> 
    { 
        new TableItemsClass() 
        { 
          Description = "descr",
          InventoryTransTempID == 1
        },
        new TableItemsClass() 
        { 
           Description = "descr",
           InventoryTransTempID == 2
        } 
    });

AddRange采用IEnumerable ,而不是單個元素。 處理此類情況的一種方法是將您的商品包裝在數組中:

mItems.AddRange(new TableItemsClass[] {new TableItemsClass() { Description = sqlReader["Name"].ToString(),InventoryTransTempID = Convert.ToInt32(sqlReader["InventoryTransTempID"]) }});

AddRange用於添加多個Enumerable類型的項目。 new TableItemsClass()是一個對象。 因此Add將起作用。 如果您有這些對象的集合,例如List<TableItemsClass>()則可以使用AddRange()方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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