在链接的记录中循环
本文关键字:循环 记录 链接 | 更新日期: 2023-09-27 18:24:38
我不确定这是否可能,但也许有人可以提出建议。
我们在系统中设置了以下记录:
Product_ID | Product_Name | Product_Price | Original_Product_ID
当产品被修改时,在Original_Product_ID
字段中参考先前的encarnation来创建新记录。
我想做的是传入一个Product_ID
(Current)并返回它来自的产品,在某些情况下,它将返回与传入的相同的结果,在其他情况下,我将需要循环浏览许多记录。
请有人对此提出建议。。。
您需要类似(非递归解决方案)的东西吗?
Product GetOriginalProductById(int productId)
{
Product p = GetProductById(productId);
while (p.OriginalId != null && p.Id != p.OriginalId)
{
p = GetProductById(p.OriginalId);
}
return p;
}
这里有一个简单的递归方法:
void GetOriginalProducts(Item i, ref List<Item> items)
{
if(i.ID == i.OriginalID) return;
items.Add(i);
GetOriginalProducts(items.Single(it => it.OriginalID == i.ID), ref items);
}