我正在研究一种可以解决我遇到的问题的算法,但我发现自己有点卡住了。这是场景:
我有一个对象,其中包含一个名为 order 的变量。
public class Item
{
public int Order{get; set;};
public int ID{get; set;}; // not incremented can be any value!
}
Run Code Online (Sandbox Code Playgroud)
所以我有一个列表:
List<Item> list = new List<Item>().OrderBy((o) => o.Order);
Run Code Online (Sandbox Code Playgroud)
并且可以随时更改订单值。因此,如果我想更改第一个项目订单值,则所有其他订单值都应相应更新,以免重复。
for (int i = 0; i <= list .Count - 1; i++)
{
if (list [i].ID == inputID)
{
list [i].Order = inputNewPosition;
}
else
{
if (list [i].Order < inputNewPosition)
{
list [i].Order --;
}
else
{
list [i].Order ++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将最后一个项目的顺序更改为第一个,这将失败,因为这会使第一个项目的顺序为 0!
任何人都可以帮忙吗? …
我目前正在学习 PostgreSQL 并且在涉及存储过程时遇到了障碍。
我有一个包含这些列的订单表:
OrderId
OrderStatus
OrderTime
Run Code Online (Sandbox Code Playgroud)
我也有一个订单行表
OrderId
OrderLineId
OrderLineAmount
OrderLineCost
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个存储过程,该过程将创建一个订单,然后将一个订单行列表插入到第二个表中。
这是我到目前为止所拥有的:
CREATE OR REPLACE FUNCTION public.createcustomerorder(
_orderstatus integer,
_ordertimestamp timestamp)
RETURNS int4 AS
$BODY$
DECLARE
last_id int4;
BEGIN
INSERT INTO "Order"
(orderstatus, ordertimestamp)
VALUES(_orderstatus, _ordertimestamp)
RETURNING orderid INTO last_id;
RETURN last_id;
END;
$BODY$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
我发现很难弄清楚如何传递参数,然后如何进行实际插入。
谢谢你的时间