|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
Добрый день всезнающий пипл. Подскажите как можно оптимизировать такой код: Я бы хотел вывести формулу для level=N (case N) не могу придумать как это сделать. Я предполагаю, что нужно создать какой то цикл, но как это сделать в linq не могу придумать. Заранее спасибо Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 11:35 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
Если решать тупо в лоб - Where можно скомбинировать в цикле Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 11:42 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
а условие && при этом добавляется (а если бы вместо && было ||)? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 11:46 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
yura1985а условие && при этом добавляетсяпо сути - да, это просто как несколько Where подряд yura1985а если бы вместо && было ||тут посложнее, понадобилось бы динамически сконструировать выражение (это применимо и для &&, просто для && этот способ проще для начала, а потом можно и переделать, если приспичит), для этого есть разные способы ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:05 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
yura1985, Почему case не перемесить в GetAllNodes? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:09 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
а как в цикл впихнуть? Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:15 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
yura1985а как в цикл впихнуть?А зачем их в цикл запихивать, если они статичны? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:17 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
yura1985, это возможно бизнес логика. Самая ценная часть приложения.... Или фильтры в инет магазине.. Или... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:31 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю... что моя ф-я должна так выглядеть? Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:33 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
RoleMnu_Cd на test поменять нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:35 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
Блин (написал невнимательно).... вот так? for (int i = level; i > 0; --i) { item.Childs = GetAllNodes(data_all.Where(x => x.test[i - 1] == item.test[i - 1].ToList(), data_all); } item.Childs = GetAllNodes(x => x.test[level] != 0 && x.test[level + 1] == 0).ToList(), data_all); ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:38 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
yura1985Блин (написал невнимательно).... вот так? for (int i = level; i > 0; --i) { item.Childs = GetAllNodes(data_all.Where(x => x.test[i - 1] == item.test[i - 1].ToList(), data_all); } item.Childs = GetAllNodes(x => x.test[level] != 0 && x.test[level + 1] == 0).ToList(), data_all);не приходит в голову, что из присвоений item.Childs = GetAllNodes будет действительно только последнее, а цикл можно вообще выкинуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:43 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
yura1985Правильно ли я понимаю...Что-то я вижу мало общего с тем, что я предложил, не вижу участия переменной цикла и вообще понимания работы кода. Нужно завести переменную с выражением перечисления с начальным статичным фильтром (код приблизительный, не анализировал на соответствие первоначальному) Код: c# 1.
затем в цикле добавить дополнительные фильтры Код: c# 1. 2. 3. 4. 5.
а потом уже выполнять материализацию и вызов GetAllNodes Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:44 |
|
оптимизация linq кода
|
|||
---|---|---|---|
#18+
Спасибо... я уже как раз сам так же переписал. И смотрю Вы так же :) ГЕНИАЛЬНЫЕ РЕШЕНИЯ рекомендуете. Спасибо огромное! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2019, 12:59 |
|
|
start [/forum/topic.php?fid=17&msg=39766458&tid=1349136]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 426ms |
0 / 0 |