Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Maxick94
1 / 1 / 1
Регистрация: 08.12.2012
Сообщений: 45
#1

Сортировка массива объектов вручную - C#

23.09.2014, 14:48. Просмотров 520. Ответов 4
Метки нет (Все метки)

Нужно отстортировать массив объектов по полю volumeRAM. Я пытался сортировать как обычный массив, но получилось, что переставляются только значения VolumeRAM, а нужно, чтобы переставлялись строки. Поэтому прошу помощи у вас. Стандартные методы сортировки (Sort() и пр.) не использовать.

Листинг программы:

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
44
45
46
47
48
49
50
51
class NoteBook
{
public string model;
public float volumeRAM;
public float volumeHDD;
public string videocard;
public string other
 
public NoteBook()
{
}
 
public NoteBook(string Model, float VolumeRAM, float VolumeHDD, string Videocard, string Other)
{
model=Model;
volumeRAM=VolumeRAM;
volumeHDD=VolumeHDD;
videocard=Videocard;
other=Other;
}
 
public override ToString()
{
StringBuilder result=new StringBuilder();
result.Append(model);
result.Append(volumeRAM);
result.Append(volumeHDD);
result.Append(videocard);
result.Append(other);
return result.ToString();
}
}
 
 
static void Main()
{
NoteBook[] noteBooks=new NoteBook[2];
for (int i=0; i<noteBooks.Length;i++)
{
noteBooks[i]=new NoteBook(Console.ReadLine(), float.Parse(Console.ReadLine()), float.Parse(Console.ReadLine()), Console.ReadLine(), Console.ReadLine());
}
 
//сортировка
 
for (int i=0; i<noteBooks.Length;i++)
{
Console.WriteLine(noteBooks[i].ToString());
}
 
Console.ReadLine();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2014, 14:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка массива объектов вручную (C#):

Сортировка массива (целых чисел, объектов и тд) - C#
Добрый день. Задача состоит в том чтобы 1. В абстрактном классе создать универсальный метод сортировки (массивов, объектов и т.д.) ...

Сортировка массива объектов по принадлежности к классу - C#
Есть 3 класса, у которых общим является интерфейс, который они реализуют. Создаётся массив объектов данных классов требуется полученный...

Сортировка массива из объектов по 2-м полям класса - C#
Допустим есть класс Car с полями speed (int) и model (string) и расширяющий Icomparable&lt;Car&gt;. Как пишет об этом Троелсен, необходимо...

Сортировка массива объектов по заданным параметрам - C#
Здравствуйте! Нужна помощь с интерфейсом IComparer! Суть такова - имеется массив объектов (животные с параметрами - название, вес,...

Сортировка массива объектов класса по свойству объекта - C#
public class SortByName : IComparer&lt;Order&gt; { public int Compare(Order o1, Order o2) { if...

Сортировка массива объектов класса по свойству объекта - C#
есть класс Order в нём есть свойство string Client есть массив Order orders как отсортировать элементы массива по свойству Client? ...

4
ITraceR
Заблокирован
23.09.2014, 14:51 #2
Так где вваша реализация сортировки?
0
Learx
1035 / 842 / 86
Регистрация: 31.03.2010
Сообщений: 2,465
23.09.2014, 15:03 #3
Maxick94, так покажите вашу сортировку, чтоб мы могли ее исправить
0
Maxick94
1 / 1 / 1
Регистрация: 08.12.2012
Сообщений: 45
23.09.2014, 23:04  [ТС] #4
Вот
C#
1
2
3
4
5
6
7
8
9
for (int i=0;i<noteBooks.Length;i++)
{
       if (noteBooks[i].volumeRAM>noteBooks[i+1].volumeRAM)
       {
             float buff=noteBooks[i].volumeRAM;
             noteBooks[i].volumeRAM=noteBooks[i+1].volumeRAM;
             noteBooks[i+1].volumeRAM=buff;
       }
}
0
ITraceR
Заблокирован
23.09.2014, 23:36 #5
Где же вы такую видели сортировку? Почитайте про сортировку вставками или пузырьком хотя бы.
По существу у Вас логическая ошибка вот здесь
C#
1
2
3
float buff=noteBooks[i].volumeRAM;
noteBooks[i].volumeRAM=noteBooks[i+1].volumeRAM;
noteBooks[i+1].volumeRAM=buff;
Вы меняете значения что собственно вы и описали как неправильное поведение. нужно менять местами объекты.
C#
1
2
3
NoteBook buff = noteBooks[i];
noteBooks[i] = noteBooks[i+1];
noteBooks[i+1] = buff;
0
23.09.2014, 23:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2014, 23:36
Привет! Вот еще темы с ответами:

При инициализации массива объектов в одном методе, этот массив объектов не видно в других методах - C#
static public void Load() { BaseObject objs = new BaseObject; //Этот массив! for (int i = 0; i &lt;...

Задание размера массива вручную - C#
как задать размеры массива вручную, с экрана консоли? int size; int a = new int ; с объявлением массива всё понятно. так...

Ввод массива вручную или загрузка из файла - C#
В задании нужно было реализовать 3 способа ввести массив: сгенерировать его случайным образом, ввести вручную в текстбокс или загрузить из...

Сортировка листа объектов - C#
У меня есть исходный список объектов по три поля в каждом, мне нужно отсортировать его последовательно по двум полям. Как это сделать,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru