|
Применить функцию к каждому элементу коллекции без создания копий массива
|
|||
---|---|---|---|
#18+
Допустим, есть коллекция и надо её отнормировать по её максимальному элементу. Делаю так Код: c# 1. 2. 3. 4. 5.
Как это же сделать с помощью лямбда-выражинеий? Если через Select, в которой лямбду написать, то будет создана новая копия коллекции - расходы памяти и всё такое, а мне надо отнормировать в уже существующей. Если через ForEach, то он принимает тип Action, а не Func, а Экшен не возвращает результата применения действия к элементу коллекции. Можно переопределить свой ForEach, но это надо что-то делать, а я ищу, есть ли простой встроенный во фреймворк способ? Неужели банальный for и всё? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 13:05 |
|
Применить функцию к каждому элементу коллекции без создания копий массива
|
|||
---|---|---|---|
#18+
Объясните доходчиво, что именно вас не устраивает в "банальный for"? Типа, ребя, подскажите, как мне на Бентли от кухни до ванной доехать, если эта самая Бентля между кухней и ванной тупо не влазит?! Неужели банально... пешком?! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 13:23 |
|
Применить функцию к каждому элементу коллекции без создания копий массива
|
|||
---|---|---|---|
#18+
Достал хрустальный шар. Сдается хрустальному шару что Array в данном случае нифига не массив а некая коллекция исполняющая IList. Трем шар дальше, шар говорит нам что это все таки List<double>. Чем не нравится линк через селект? Сдается мне, что проблема надуманная. Хрустальный шар мне подсказывает. Изначальную коллекцию подменяем новой, память выделенная под старые значения освободится. var doubleNumbers = new List<double> { 1.0, 1.1, 3, 4, 5 }; double max = doubleNumbers.Max(); doubleNumbers = doubleNumbers.Select(currentNumber => currentNumber/max).ToList(); ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 15:24 |
|
|
start [/forum/topic.php?fid=20&msg=38054951&tid=1405574]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 143ms |
0 / 0 |