我不能完全试图解决这个问题,但我将解释如下,
var combinedCoords = new List<List<int>>();
var coords = new List<List<int>>
{
new List<int>() {0, 1},
new List<int>() {0, 1, 2},
new List<int>() {1, 3, 4, 5},
new List<int>() {3, 4},
new List<int>() {7, 8},
new List<int>() {7, 8, 9},
new List<int>() {8, 9, 10}
};
Run Code Online (Sandbox Code Playgroud)
在这里,我有coords
包含一些的var List<int>
; 我需要的是在combinedCoords
其中填充一些新列表,其中包含一些共同数字的组合列表.从这里应该有2个组合列表,第一个将是{0,1,2,3,4,5}
,第二个将是{7,8,9,10}
.为了进一步说明我想说的是,下面是一个图形表示,每个圆圈都是一个列表; 括号中的红色数字表示每个列表的索引.
我有一个整数列表“numberRangeList”,其中按顺序包含从 62 到 92 的 31 个整数,我正在提取第二个整数列表“extractedList”,其中将包含 10 个整数,其总和等于“total”。问题是计算需要大约30秒,有什么办法可以加快速度吗?
var numberRangeList = new List<int>() { 62, 63, ...92 };
var total = 772;
var extractedList= (from n1 in numberRangeList
from n2 in numberRangeList
from n3 in numberRangeList
from n4 in numberRangeList
from n5 in numberRangeList
from n6 in numberRangeList
from n7 in numberRangeList
from n8 in numberRangeList
from n9 in numberRangeList
from n10 in numberRangeList
where n1 + n2 + n3 + n4 + n5 + n6 + n7 + …
Run Code Online (Sandbox Code Playgroud)