Никак не придумаю логику работы с массивом - C#
Формулировка задачи:
есть Данные
name | weight
0 вася|1
1 петя| 3
2 леша|63341
3 света|9333
4 маша|4
результат должен быть такой
0 вася| 1
1 петя|2
2 маша|3
3 света|4
4 леша|5
с сортировкой понятно
непонятно как выправить weight вот так аккуратно
то есть предположим была куча записей(100000) и у них был вес для сортировки(пользовательской). Удалили все кроме тех, что в таблице и надо сохранить их сортировку и при этом их вес выравнять. Ведь больше нецелесообразно использовать такие большие веса.
то есть чистку своеобразную.
* количество оставшихся записей можно узнать
* решение с временным массивом не предлагать
язык программирования пофиг какой не важно.
Решение задачи: «Никак не придумаю логику работы с массивом»
textual
Листинг программы
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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д