数组中的奇怪值 - 我更改它们后它们保持不变

本文关键字:数组 | 更新日期: 2023-09-27 18:35:30

这是我的代码:

var items = tableInDatabase.All("WHERE [Order] > " + order);
foreach (var i in items.ToArray())
{
    i.Order = 7;
}
tableInDatabase.Save(items.ToArray());

但是,当断点到达最后一行(在 foreach 循环之后)时,项的每个元素的顺序与之前相同(不是 7)。为什么会这样?虽然仍在循环中,但我的订单为 7。

我正在使用 Massive,这是其官方页面的示例:

var table = new Products();
var drinks = table.All("WHERE CategoryID = 8");
foreach(var item in drinks.ToArray()){
    item.CategoryID = 12;
}
table.Save(drinks.ToArray());

我也试过:

foreach (var i in items.ToArray())
{
    tableInDatabase.Update(i, i.Id);
}

什么都没有。

返回类型 od tableInDatabase 是类 TableInDatabase。这是定义:

public TableInDatabase() : base(connectionString, "System.Data.SqlClient", "TableInDatabase", "Id") { }

数组中的奇怪值 - 我更改它们后它们保持不变

使用以下代码:

var items = tableInDatabase.All("WHERE [Order] > " + order);
var array = items.ToArray();
foreach (var i in array)
{
    i.Order = 7;
}
tableInDatabase.Save(array);

ToArray()创建一个新副本,如Romil所说,在您的情况下,由于您使用的是Massive,因此您可能可以按照Adam所说的进行操作,但是该选项会创建两个变量。您可以尝试以下操作。

var items = tableInDatabase.All("WHERE [Order] > " + order).ToArray();
foreach (var i in items)
{
    i.Order = 7;
}
tableInDatabase.Save(items);

这是大量示例的已知问题,已在此处报告