我有一个 List<foo>
有两个属性:
start_time
和 end_time
假设我们在该列表中有 100 条记录。如何检查所有间隔的长度是否相等?换句话说,我想知道所有 foo
的结束时间和开始时间之间的差值。对象是平等的。
在哪里 ( value = end_time-start_time
)。
是否有可能在单个 LINQ
中实现这一目标行?
谢谢,感谢。
最佳答案
当然,你可以这样写:
var list = new List<foo>();
var areAllEqual = list.GroupBy(l => (l.end_time - l.start_time)).Count() == 1;
或者,如果您想对这些信息做更多的事情:
var differences = list.GroupBy(l => (l.end_time - l.start_time)).ToList();
var numDifferences = differences.Count();
var areAllEqual = numDifferences == 1;
var firstDifference = differences.First().Key;
var allDifferences = differences.Select(g => g.Key);
关于c# - 检查列表中的间隔是否等长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34983394/