-1

アイテム配列があります:

dtProducts.Rows[i].ItemArray;

この配列の先頭に単一の文字列値を追加してから、配列全体を別のDataTableに追加しようとしています。

アイテム配列で.ToList()を使用してから、文字列値を追加しようとしましたが、次のエラーが発生しました。

タイプ'void'を'System.Collections.Generic.Listに暗黙的に変換することはできません

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

私は何が間違っているのですか?

4

4 に答える 4

3

Jasonが言ったように、List <>。Addはvoidメソッドであるため、次のように評価を削除する必要があります。

items.Add("myString");

新しいアイテムをリストの先頭に配置する場合は、[挿入]を使用します。

items.Insert(0, "myString");
于 2012-12-13T17:14:08.890 に答える
1

C#List.Add()関数は、アイテムを所定の場所に追加します。戻り値がないため、次を置き換えます。

items = items.Add("myString");

単に

items.Add("myString");

問題を解決する必要があります

于 2012-12-13T17:09:56.487 に答える
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();
}

(2番目のテーブルにtable1.Column.Count + 1列があると仮定します)

于 2012-12-13T17:14:20.883 に答える
0

リストのインデックス0にアイテムを追加するには、新しいリストを作成し、オブジェクトを追加してから、元のリストを繰り返し処理して、リストからオブジェクトを追加する必要があります。

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

addメソッドは、オブジェクトをリストの末尾に追加します(インデックスn + 1)。

于 2012-12-13T17:15:34.833 に答える