现在我正在使用下面的代码在列表中添加新项目。
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>
答案 0 :(得分:0)
AddRange
期望将IEnumerable作为参数,但是您正在传递T。要解决此问题,只需将其传递给列表:
mItems.AddRange(
new List<TableItemsClass>
{
new TableItemsClass()
{
Description = "descr",
InventoryTransTempID == 1
},
new TableItemsClass()
{
Description = "descr",
InventoryTransTempID == 2
}
});
答案 1 :(得分:0)
AddRange
使用IEnumerable
,而不是单个元素。处理此类情况的一种方法是将您的商品包装在数组中:
mItems.AddRange(new TableItemsClass[] {new TableItemsClass() { Description = sqlReader["Name"].ToString(),InventoryTransTempID = Convert.ToInt32(sqlReader["InventoryTransTempID"]) }});
答案 2 :(得分:0)
AddRange用于添加多个Enumerable类型的项。 new TableItemsClass()
是一个对象。因此Add
将起作用。如果您有List<TableItemsClass>()
之类的这些对象的集合,则可以使用AddRange()
方法