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