假设我有这样一个类:
public class Work
{
public string Name;
public double Time;
public Work(string name, double time)
{
Name = name;
Time = time;
}
}
我有一个包含大约20个已填充值的List<Work>
:
List<Work> workToDo = new List<Work>();
// Populate workToDo
有没有可能将workToDo
分组成多个片段,每个片段的时间总和为特定值?比如workToDo
具有以下数值:
Name | Time
A | 3.50
B | 2.75
C | 4.25
D | 2.50
E | 5.25
F | 3.75
如果我想让总时间为7,每个片段或
List<Work>
应该有一堆值,其中所有时间的总和为7或接近7。这是否可能实现或只是一个愚蠢的问题/想法?我正在使用此代码将workToDo
分成4个片段:var query = workToDo.Select(x => x.Time)
.Select((x, i) => new { Index = i, Value = x})
.GroupBy(y => y.Index / 4)
.ToList();
但我不确定如何基于Times来实现它。
名称
分组,但为了确保每个结果不超过7个而重复名称? - Enigmativity{ A + B,C + D,E,F }
? - Enigmativity