list<int> = {14, 24, 56,189,909,1000};
我想通过一个范围,使得落入彼此的范围内的整数是崩溃成一个值崩溃(组?)它们。
所以结果应该是范围= 100
{14,24,56} //since they 24 falls within 100 of 14 and 56 falls within 100 of 24
{189}
{909, 1000} //since they fall within 100 of each other
我知道这是可能使用LINQ组通过,但我对语法难住了。
我已经看过这个answer,但不能确定用什么范围,因为我只有一个范围,即100
int[] values = {100, 110, 120, 130, 140, 150, 160, 170};
int[] ranges = {115, 145, 180};
var query = from value in values
group value by ranges.Where(x => value >= x)
.DefaultIfEmpty()
.Last();
foreach (var group in query)
{
Console.WriteLine("{0}: {{{1}}}", group.Key,
string.Join(", ", group));
}
会的结果是什么,如果有输入150?它会成为第一组还是第二组的一部分? – user2864740 2014-09-29 22:10:22
抱歉错过了你的问题,如果它是150,它会在两套。 {14,24,56,150},{150,189}。谢谢。 – Santino 2014-09-29 22:12:46
那么为什么189不是第一组的一部分(因为189小于150 + 100)? – user2864740 2014-09-29 22:21:53