假设我有这样的课程:
public class Work
{
public string Name;
public double Time;
public Work(string name, double time)
{
Name = name;
Time = time;
}
}
我有一个List<Work>
大约 20 个值,它们都被填满了:
List<Work> workToDo = new List<Work>();
// Populate workToDo
有没有什么可能的方法可以分组workToDo
为每个段的时间总和是特定值的段?SayworkToDo
的值如下:
Name | Time
A | 3.50
B | 2.75
C | 4.25
D | 2.50
E | 5.25
F | 3.75
如果我希望时间总和为 7,则每个段或List<Work>
应该有一堆值,其中所有时间的总和为 7 或接近它。这甚至是遥不可及的,还是只是一个愚蠢的问题/想法?我正在使用此代码将其workToDo
分成 4 段:
var query = workToDo.Select(x => x.Time)
.Select((x, i) => new { Index = i, Value = x})
.GroupBy(y => y.Index / 4)
.ToList();
但我不知道如何根据泰晤士报来做到这一点。