Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 9

Никак не придумаю логику работы с массивом

16.10.2015, 15:44. Показов 1370. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть Данные

name | weight
0 вася|1
1 петя| 3
2 леша|63341
3 света|9333
4 маша|4

результат должен быть такой
0 вася| 1
1 петя|2
2 маша|3
3 света|4
4 леша|5


с сортировкой понятно
непонятно как выправить weight вот так аккуратно
то есть предположим была куча записей(100000) и у них был вес для сортировки(пользовательской). Удалили все кроме тех, что в таблице и надо сохранить их сортировку и при этом их вес выравнять. Ведь больше нецелесообразно использовать такие большие веса.
то есть чистку своеобразную.
* количество оставшихся записей можно узнать
* решение с временным массивом не предлагать

язык программирования пофиг какой не важно.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.10.2015, 15:44
Ответы с готовыми решениями:

Никак не придумаю запросы в бд
Доброго времени суток.Создаю бд для фирмы,которая устанавливает на машины аудио-системы.Собственно нужна помощь - никак не могу придумать...

Игра морской бой: никак не придумаю как лучше реализовать корабли в игре
Пишу игру "Морской бой" на c# и никак не решу как лучше реализовать в программе корабли.

Как изменить логику работы правила работы с корзиной на не предусмотренную самой cms?
Добрый день, Пытаюсь сделать расчет скидки наценки не стандартным образом. Логика такова: При выборе определенной системы оплаты,...

10
Эксперт .NET
 Аватар для Rius
13235 / 7730 / 1681
Регистрация: 25.05.2015
Сообщений: 23,550
Записей в блоге: 14
16.10.2015, 15:51
C#, Linq, сортировка, выборка, потом перебор с назначением новых весов.
0
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 9
16.10.2015, 15:55  [ТС]
тоесть ?
бежим после сортировки и по порядку назначаем вес ?
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
16.10.2015, 15:58
rundmx, у вас новый(выравненный) вес будет равен индексу этого элемента в отсортированном массиве (ну или индекс + 1)
0
Эксперт .NET
 Аватар для Rius
13235 / 7730 / 1681
Регистрация: 25.05.2015
Сообщений: 23,550
Записей в блоге: 14
16.10.2015, 16:00
Да, так.
Хотя чем большие числа мешают? Числа есть числа. Компьютеру пофиг.
0
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 9
16.10.2015, 16:03  [ТС]
не будет
записи которые были удаленны они грубо ( обнулены тоесть(

0 a
1 b
2 c
3 NULL
4 e
5 f

Добавлено через 1 минуту
Rius сортировка пользователем осуществляется нажатием стрелочки вверх она же в свою очередь добавляет к весу +1 , теперь представим сколько раз надо нажать эту клавишу
0
Эксперт .NET
 Аватар для Rius
13235 / 7730 / 1681
Регистрация: 25.05.2015
Сообщений: 23,550
Записей в блоге: 14
16.10.2015, 16:03
Просто исключить их из участия.
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
16.10.2015, 16:03
Цитата Сообщение от rundmx Посмотреть сообщение
не будет
записи которые были удаленны они грубо ( обнулены тоесть(
Ну счетчик во внутрь цикла воткните, и проверку там на Null.
0
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 9
16.10.2015, 16:13  [ТС]
Спасибо ребят допер!
0
Эксперт .NET
 Аватар для Rius
13235 / 7730 / 1681
Регистрация: 25.05.2015
Сообщений: 23,550
Записей в блоге: 14
16.10.2015, 16:18
Лучший ответ Сообщение было отмечено rundmx как решение

Решение

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
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            List<Item> source = new List<Item>()
            {
                new Item { Name ="вася", Weight = 1},
                new Item { Name ="петя", Weight = 3},
                new Item { Name ="леша", Weight = 63341},
                new Item { Name ="света", Weight = 9333},
                null,
                new Item { Name ="маша", Weight = 4}
            };
 
            int counter = 0;
 
            var filtered = from item in source
                           where item != null
                           orderby item.Weight
                           select item;
 
            var result = filtered.Select<Item, Item>(
                (Item item, int index) =>
                    new Item() { Name = item.Name, Weight = index });
 
            foreach (var item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
 
    class Item
    {
        public string Name { get; set; }
        public int Weight { get; set; }
        public override string ToString()
        {
            return String.Format("Name: {0}, Weight: {1}", this.Name, this.Weight);
        }
    }
Результат:
Code
1
2
3
4
5
Name: вася, Weight: 0
Name: петя, Weight: 1
Name: маша, Weight: 2
Name: света, Weight: 3
Name: леша, Weight: 4
0
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 9
19.10.2015, 14:05  [ТС]
Теперь ещё вопрос дополню , а как нормализовать вес в дереве

есть дерево
есть его вывод через рекурсию
C#
1
2
3
4
5
6
7
8
9
private void button1_Click(object sender, EventArgs e)
{
    strTree = "";
    foreach (TreeNode n in treeView1.Nodes)
    {
        WalkTreeNode(n, 0);
    }
    MessageBox.Show(strTree, "Рекурсивный обход узлов TreeView");
}
C#
1
2
3
4
5
6
7
8
private void WalkTreeNode(TreeNode node, Int32 level)
{
    strTree += node.Text + " (" + level.ToString()+")\r\n";
    foreach (TreeNode n in node.Nodes)
    {
        WalkTreeNode(n, level + 1);
    }
}
вес находится в node.tag
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2015, 14:05
Помогаю со студенческими работами здесь

Объясните логику работы программы
public static boolean getAnswer ( int array){ if (array.length &lt; 2) return false; for (int i = 0; i &lt; array.length - 1;...

Изменить логику работы ссылки
Есть сайт, на нём есть ссылка, при клике по которой открывается popup окно внутри которого iframe на сторонний сайт. Нужно при мобильном...

Не понимаю логику работы программы
Здравствуйте уважаемые форумчане. У меня при просмотре кода ниже написанной программы возникли вопросы. Я нахожусь в процессе изучения...

Объясните логику работы модуля
Есть вот такой модуль формы. Не понимаю почему, при изменении поля Дисциплина вызывается функция ПолучитьСтудентов() &amp;НаСервере ...

Наладить логику работы программы
Всем добрый день! Прошу помощи по отладке логики программы, заранее извиняюсь, если уже такая проблема поднималась. Просмотренная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru