|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
нужно со списка типа: number12368911121314 сделать набор диапазонов range1-368-911-14 Можно сгруппировать по этим диапазонам и использовать функцию LINQ Aggregate(). Но вопрос в том, как вычислить ключ для группировки, как понять, что числа должны группироваться в эти диапазоны? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2016, 18:43 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
Каждый элемент не самодостаточен в плане определения такого ключа, необходим просмотр как предыдущего, так и следующего элемента. Так что полюбому требуется проход по списку. А коли требуется проход - то нет никакого смысла возиться с Linq - проще написать свой цикл. Можно даже оформить его в собственный метод расширения для IEnumerable<int> и тогда можно будет спокойно встраивать его в цепочки Linq-вызовов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2016, 18:52 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
_Novichok1-3 Это строковое представление диапазона? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2016, 22:04 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
Cat2, да. В принципе, продолжать не имеет смысла, уже у меня уже написано расширение. Правда не для IEnumerable<int>, а для List<int>. Поскольку данный метод может быть в составе других Linq-вызовов, и получение размера или элемента по индексу будет вести к тому, что каждый раз будет дергаться вся цепочка. А на больших массивах данных это будет вести к неоправданным временным затратам. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 12:46 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
Если последовательность отсортирована по возрастанию, то из чисел нужно вычесть их порядковые номера и сгруппировать по разности. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2016, 17:46 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
Нахлобуч, Типа так? Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2016, 18:37 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
Shocker.ProКаждый элемент не самодостаточен в плане определения такого ключа, необходим просмотр как предыдущего, так и следующего элемента. Так что полюбому требуется проход по списку. А коли требуется проход - то нет никакого смысла возиться с Linq - проще написать свой цикл. Можно даже оформить его в собственный метод расширения для IEnumerable<int> и тогда можно будет спокойно встраивать его в цепочки Linq-вызовов. Не обязательно смотреть вперёд и обратно, если коллекция отсортирована. И на чистом LINQ задача решается ) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2016, 18:38 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
hVostt, ага. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2016, 12:12 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
Дайте намёк )) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2016, 21:56 |
|
Набор диапазонов из списка чисел
|
|||
---|---|---|---|
#18+
Shocker.ProДайте намёк )) ? Выше же написали.. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2016, 09:39 |
|
|
start [/forum/topic.php?fid=20&fpage=53&tid=1400266]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 155ms |
0 / 0 |