Вместо foreach более эффективное решение?
Nope. По сути, если вы хотите округлить все значения, вам нужно округлить все значения. Нет никакой магии, которая сделает это проще.
Конечно, если вы только собираетесь открыть несколько значений, вы могли бы потенциально перепроектировать код лениво туры доступа - или даже на экране, - но если вам действительно нужны закругленные версии всех значения, ничего не будет делать быстрее, чем операция O (n).
Вы можете сделать это параллельно, как указано в других ответах, которые также могут сделать это быстрее - но одновременно будет менее эффективным чем однопоточных подход. (В результате вы будете больше работать, из-за координации, но вы все равно сделаете это быстрее, вероятно.)
Вы ничего не сказали о том, почему вы хотите округлить эти значения, Как правило, вы должны только округлять значения в точке отображения. Вы действительно уверены, что вам нужно округлить их до этого? Что представляют значения? (Если они представляют собой финансовые значения, вы должны строго рассмотреть decimal
вместо double
.)
ли тест на округление 10.000.000 пунктов, потребовалось ~ 300 мс, так что если вы должны сделать эту операцию очень часто ее не отнимать много времени. – Magnus