Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
01.06.2018, 18:10
|
|||
---|---|---|---|
|
|||
Шарпей не тянет? |
|||
#18+
Такой вот вброс. Всю башню себе выломал. Есть такая штука: Код: c# 1.
Расположены в правильном порядке. Количество неизвестно. Нужно составить дерево из этого добра, группируя по условиям, которые находятся в 'a Пытаюсь заюзать aggregate, по концепции то, что надо. То есть: Код: c# 1.
Но GroupBy возвращает Код: c# 1.
, ну а по сигнатуре надо Код: c# 1.
. Как быть? Хочу сделать с LINQ, то есть без ручных обходов в императивном стиле. Хочу сделать с анонимными классами (не хочу создавать класс для этой операции). P.S. То есть - Код: c# 1.
- эта штука - перечисление элементов, которые лежат на одном уровне дерева. И их надо "просто" вложить в друг-друга. Если чо - заготова. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2018, 20:18
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
Агнец за бортомНо GroupBy возвращает Код: c# 1.
, ну а по сигнатуре надо Код: c# 1.
Очень-очень странный запрос... Ну сделай First/Single, хотя и бред, но получишь свой IGrouping )) Материализацию дерева из плоской коллекции без рекурсива, или yield, или стека, или промежуточного словаря -- не получить. Агнец за бортомЕсли чо - заготова. Исходный лист давай. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2018, 21:15
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
hVosttМатериализацию дерева из плоской коллекции без рекурсива, или yield, или стека, или промежуточного словаря -- не получить. Ну почему? Если коллекция упорядочена и в элементах указывать индекс родителя, то ForEach и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2018, 21:37
|
|||
---|---|---|---|
|
|||
Шарпей не тянет? |
|||
#18+
hVosttИсходный лист давай В исходном - дерево строк в экселе ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2018, 21:51
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
LRНу почему? Если коллекция упорядочена и в элементах указывать индекс родителя, то ForEach и все. Упорядочена каким образом? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2018, 21:51
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
Агнец за бортомhVosttИсходный лист давай В исходном - дерево строк в экселе Ну пример исходного массива, хотя бы из трёх элементов дай. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2018, 22:52
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
hVosttLRНу почему? Если коллекция упорядочена и в элементах указывать индекс родителя, то ForEach и все. Упорядочена каким образом? Таким, чтобы по указанному индексу находился родитель. Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 00:03
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
LRТаким, чтобы по указанному индексу находился родитель. Ну, короче, словарь. Да, я об этом и говорил. hVosttили промежуточного словаря ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 00:05
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
LR Код: c# 1.
И опять таки, ForEach, это читерство, так как по сути это обычный цикл, а ТС хочет чистой функциональщины :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 00:32
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
hVosttНу, короче, словарь. Да, я об этом и говорил. hVosttили промежуточного словаря Тогда что есть "плоская коллекция" из которой надобно дерево "материализовывать"? hVosttИ опять таки, ForEach, это читерство, так как по сути это обычный цикл, а ТС хочет чистой функциональщины :) Так весь Linq - это обычные циклы:) А чего хочет ТС я так и не понял:) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 01:04
|
|||
---|---|---|---|
|
|||
Шарпей не тянет? |
|||
#18+
LRчего хочет ТС я так и не понял Чистая функция - знаешь, что это такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 02:34
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
LRТогда что есть "плоская коллекция" из которой надобно дерево "материализовывать"? Коллекция объектов, у которых есть ID и Parent ID. Вообще, на LINQ можна Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
в tree будут корни... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 03:50
|
|||
---|---|---|---|
|
|||
Шарпей не тянет? |
|||
#18+
hVosttа ТС хочет чистой функциональщины :) Тогда для чистоты эксперимента надо использовать F#. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 08:55
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
Сон Веры ПавловныhVosttа ТС хочет чистой функциональщины :) Тогда для чистоты эксперимента надо использовать F#.+1 ТС не перебарщивай с Linq. Циклы это не зло). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 08:57
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
Агнец за бортомhVosttИсходный лист давай В исходном - дерево строк в экселехороший прыжок ...из экселя сразу в функциональный ЯП )). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 09:42
|
|||
---|---|---|---|
|
|||
Шарпей не тянет? |
|||
#18+
hVosttLRТогда что есть "плоская коллекция" из которой надобно дерево "материализовывать"? Коллекция объектов, у которых есть ID и Parent ID. Вообще, на LINQ можна Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
в tree будут корни... Только "есть нюанс". 1. Класс с данными - анонимный. 2. Ссылки на родителя нет. (Не самая проблема) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 10:30
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
Агнец за бортомLRчего хочет ТС я так и не понял Чистая функция - знаешь, что это такое?Нет. Но попробую угадать: это нечто противоположное грязной функции, верно? hVosttКоллекция объектов, у которых есть ID и Parent ID.Ну, короче, словарь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 17:21
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
Агнец за бортом1. Класс с данными - анонимный. 2. Ссылки на родителя нет. (Не самая проблема) Тогда только так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 18:42
|
|||
---|---|---|---|
|
|||
Шарпей не тянет? |
|||
#18+
hVostt, А на JS, к слову - вообще без заморочек. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.06.2018, 20:27
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
Агнец за бортомhVostt, А на JS, к слову - вообще без заморочек. Пример в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.06.2018, 13:10
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
hVosttПример в студию. +1 В каждом ЯП свои подходы и границы "правильного" и "неправильного" в кавычках. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.06.2018, 11:03
|
|||
---|---|---|---|
|
|||
Шарпей не тянет? |
|||
#18+
Шарпей всё же "не тянет". Агнец за бортомХочу сделать с анонимными классами (не хочу создавать класс для этой операции). Вот это условие выполнить не удалось, в силу типизированной природы шарпа.. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Вот такой класс создать всё же пришлось. Поскольку: 1. Уровни вложенности не ограниченны. 2. Через generic интерфейсы тип для Aggregate не задать (из-за п.1), а подчиненность выразить как-то надо. Пришлось мутить такой вот класс. Итоговый код - "две строчки". Жаль, что не удалось на анонимных классах сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.06.2018, 11:14
|
|||
---|---|---|---|
Шарпей не тянет? |
|||
#18+
Агнец за бортомЖаль, что не удалось на анонимных классах сделать. На кортежах делается же. Тебе какой больше по душе -- Tuple, ValueTuple? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.06.2018, 11:20
|
|||
---|---|---|---|
|
|||
Шарпей не тянет? |
|||
#18+
Пример кода. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1399346]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 342ms |
total: | 608ms |
0 / 0 |