0

我有一个接收 ID 的列表。它在 foreach 语句之外实例化。

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
    }
}

由于它具有通过引用传递的值,我如何将值保留在 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

Just create a copy of the list:

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