获取 DataRow 中给定值的可能组合

发布于 2024-10-11 18:29:58 字数 513 浏览 4 评论 0原文

在.Net中,有什么方法可以找到数据表中给定值的匹配组合?

数据表类似于

ItemID, Name, Quantity

1, A, 2

2, B, 1

3, C, 3

4, D, 4

5, E, 5

需要获取与匹配 Quantity 列的可能组合。

EG,如果我通过了 8,则

需要 DataTable (2+1+5 = 8, 3+5 = 8, 1,3,4 = 8) 的结果为

combinationID、Quantity、NoOfItems(combinationID 的行计数)

1, 2, 3

1, 1, 3

1, 5, 3

2 ,

3, 2 2, 5, 2

3, 1, 3

3, 3, 3

3, 4, 3

in .Net is there any way to find matching combinations for given value in data table ?

data table is like

ItemID, Name, Quantity

1, A, 2

2, B, 1

3, C, 3

4, D, 4

5, E, 5

need to get possible combinations with matching Quantity column.

E.G. if I passed 8

need result of DataTable (2+1+5 = 8, 3+5 = 8, 1,3,4 = 8) as

combinationID, Quantity, NoOfItems(Row Count for combinationID)

1, 2, 3

1, 1, 3

1, 5, 3

2, 3, 2

2, 5, 2

3, 1, 3

3, 3, 3

3, 4, 3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小ぇ时光︴ 2024-10-18 18:29:58

您可以使用 递归 CTE 来查找所有组合,如下所示-问题:获取遵守某些条件的所有可能组合MS SQL 条件

You could use a recursive CTE to find all combination like in this SO-Question: Getting all possible combinations which obey certain condition with MS SQL

樱&纷飞 2024-10-18 18:29:58

我从 C# 算法 - 找到所需的最少对象数

但仍无法按照我的要求进行修改。因为。就我而言,存在重复值,

var list = new[] { 2, 3, 4, 6, 7, 2, 4, 5, 3 };
Array.Sort<int>(list);
var ans = Knapsack(list, 9);

它将引发异常 InvalidOperationException (“序列不包含元素”)

有解决这个问题的想法吗?

I got idea from C# algorithm - find least number of objects necessary

but still in trouble to modify with my requirement. Coz. in my case there is duplicate values,

var list = new[] { 2, 3, 4, 6, 7, 2, 4, 5, 3 };
Array.Sort<int>(list);
var ans = Knapsack(list, 9);

it will trow a exception InvalidOperationException ("Sequence contains no elements")

any idea to resolve this ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文