0

I have a List that receives ids. It is instantiated outside the foreach statement.

List<int> indices = new List<int>();

foreach (var m in docsRelacionadosModel)
{
   //.. do stuff
   modelTemp.indices = indices;

   //..here I do more stuff and some time it goes to the next iteration and I need to keep the value in indices to get more values.

    //although in a condition

    if(isOk) {
        //I save the value of this list to a model
        model.indices = modelTemp.indices;

        //And I need to clear the list to get new values
        indices.Clear();  <--- This will clear the values saved in model.indices
    }
}

As it has values passed by reference, how can I keep the values in model.indices?

4

3 に答える 3

2

リストのコピーを作成し、そのコピーを に保存する必要がありますmodel.indecies。リストをコピーする方法はいくつかありますが、LINQToList拡張メソッドがおそらく最も便利です。

model.indices = modelTemp.indices.ToList();

別のオプションは、Listコンストラクターを使用することです。

model.indices = new List<int>(modelTemp.indices);
于 2013-02-13T19:06:55.903 に答える
0

この S/O questionに従って、最も簡単な方法は、リストで ToList を呼び出すことです。

model.indices = modelTemp.indices.ToList();

リストをコンストラクターパラメーターとして渡して、新しいリストとしてインスタンス化することもできます。

于 2013-02-13T19:15:24.343 に答える
0

リストのコピーを作成するだけです:

model.indices = new List<int>(modelTemp.indices);
于 2013-02-13T19:07:03.400 に答える