|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Привет всем! Собственно сабж...: имеем массив длиною Lm, нужно оставить его обрезать, те удалить всё, начиная с Cm? (оба числа > int.MaxValue, те Array.Resize не пойдёт) + по понятным причинам тоже не выход: Код: c# 1. 2. 3. 4.
Заранее спасибо ВС ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:05 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Take Skip от List<int> не подойдет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:19 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
используй List<int> у него внутри массив. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:21 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Dima Tиспользуй List<int> у него внутри массив. внутре у него неонка(c). ТС - Take/Skip тебе в помощь (это linq) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:23 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
какой List? повторяю: > int.MaxValue, тут только массив((( иначе вылет из памяти((( ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:25 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Прежде чем LINQ советовать повнимательнее почитайте v skopinоба числа > int.MaxValue int.MaxValue это 2 лярда если что. Если uint то занимают 8+ Гб, а вы копию делать предлагаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:28 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Dima TПрежде чем LINQ советовать повнимательнее почитайте v skopinоба числа > int.MaxValue int.MaxValue это 2 лярда если что. Если uint то занимают 8+ Гб, а вы копию делать предлагаете. ну пихать такое в один массив это из той же серии, что предлагать работать с ним чз linq, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:33 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
v skopinкакой List? повторяю: > int.MaxValue, тут только массив((( иначе вылет из памяти((( Точно, там int в индексе. Можешь сделать на его основе свою обертку с uint List.cs ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:35 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Сам массив ты никак не ужмешь, т.к. все варианты "ужимания" через копирование. https://msdn.microsoft.com/ru-ru/library/bb348051(v=vs.100).aspx Array.Resize<T> - метод ... Заметки Этот метод выделяет новый массив заданного размера, копирует элементы из старого массива в новый, а затем заменяет старый массив новым. поэтому делать свою обертку, которая просто сэмулирует ужимание, а массив останется как был. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:41 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Dima TМожешь сделать на его основе свою обертку с > int.MaxValue List.cs а что там можно тупо с int на uint переделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:44 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Dima Tv skopinкакой List? повторяю: > int.MaxValue, тут только массив((( иначе вылет из памяти((( Точно, там int в индексе. Можешь сделать на его основе свою обертку с uint List.cs ага. а лист, по-вашему конечно же не создает нового инстанса массива при изменении размерности? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:45 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
a как работает Take? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:46 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
v skopina как работает Take? как-то так ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:48 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
winsky!, там ничего о механизме выполнения..., те, полагаю, тоже создаёт буферный ... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:52 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
winsky!Dima Tпропущено... Точно, там int в индексе. Можешь сделать на его основе свою обертку с uint List.cs ага. а лист, по-вашему конечно же не создает нового инстанса массива при изменении размерности? Для уменьшения размера вполне возможно оставить исходный массив тем же и используя его съэмулировать меньший. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:53 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
да и вообще: linq жрёт ресурс... может как-то с++ приладить? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:54 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Dima TДля уменьшения размера вполне возможно оставить исходный массив тем же и используя его съэмулировать меньший.А вот это мысль! переписать равенство... может как-то отдельным потоком обрезать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 16:59 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
v skopinда и вообще: linq жрёт ресурс... Потому и жрет, т.к. каждый результат это новый массив. v skopinможет как-то с++ приладить? А что конкретно надо с обрезанным массивом делать дальше? Может тупо завести переменную Код: c# 1.
и использовать ее вместо Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 17:02 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
v skopinда и вообще: linq жрёт ресурс... может как-то с++ приладить? ага. смотря с чем сравнивать, если монтулить свой лист, то не жрет :D ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 17:06 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
есть же LongLength... размер, кстати <uint.MaxValue ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 17:10 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
winsky!ага. смотря с чем сравнивать, если монтулить свой лист, то не жрет :Dтам же как-то можно память напрямую обрезать... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 17:13 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Как-то так сделать: <какая-то хрень SetMemory(A, counter * sizeof(uint))> PS Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 17:20 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
PPS после вот этого использую: Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 17:22 |
|
Как обрезать массив?
|
|||
---|---|---|---|
#18+
Dima TПотому и жрет, т.к. каждый результат это новый массив. что за бред, Linq работает с Enumerator'ом и ни какие массивы не возвращает. только перечисление. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 17:34 |
|
|
start [/forum/topic.php?fid=20&fpage=57&tid=1400429]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 158ms |
0 / 0 |