将字符串添加到项数组

时间:2012-12-13 17:04:43

标签: c#

我有一个项目数组:

dtProducts.Rows[i].ItemArray;

我正在尝试将单个字符串值附加到此数组的开头,然后将整个数组添加到另一个DataTable中。

我尝试在item数组上使用.ToList(),然后添加字符串值,但它给了我一个错误:

无法将类型'void'隐式转换为'System.Collections.Generic.List

var items = dtProducts.Rows[i].ItemArray.ToList();
items = items.Add("myString");

我做错了什么?

4 个答案:

答案 0 :(得分:3)

正如Jason所说,List<> .Add是一个void方法,你应该删除这个assingment:

items.Add("myString");

如果您希望新项目位于列表的开头,请使用Insert:

items.Insert(0, "myString");

答案 1 :(得分:1)

C#List.Add()函数添加了一个项目,它没有返回值,因此替换:

items = items.Add("myString");

只需

items.Add("myString");

应该解决您的问题

答案 2 :(得分:0)

ItemArray不是DataRow[]。它是DataRow字段的数组。

我假设您要将一个DataTable的所有字段复制到另一个DataTable,并使用string填充第一列。

string[] stringToInsert = new[]{"myString"};
foreach(DataRow row1 in table1.Rows)
{
    DataRow newRow = table2.Rows.Add();
    newRow.ItemArray = stringToInsert.Concat(row1.ItemArray).ToArray();
}

(假设第二个表有table1.Column.Count + 1列)

答案 3 :(得分:0)

要在列表的索引0处添加项目,您需要创建一个新列表,添加您的对象,然后迭代原始列表,从中添加对象,例如。

List<object> newList = new List<object>();
newList.add("myString");
foreach (object item in items)
{
    newList.add(item);
}

add方法将对象添加到列表的尾部(索引n + 1)。