Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Maxick94
1 / 1 / 1
Регистрация: 08.12.2012
Сообщений: 45
#1

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

23.09.2014, 14:48. Просмотров 604. Ответов 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();
}

http://www.cyberforum.ru/csharp-beginners/thread1295575.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2014, 14:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка массива объектов вручную (C#):

Сортировка массива из объектов по 2-м полям класса
Допустим есть класс Car с полями speed (int) и model (string) и расширяющий...

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

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

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

Сортировка массива объектов класса по свойству объекта
public class SortByName : IComparer&lt;Order&gt; { public int...

4
ITraceR
Заблокирован
23.09.2014, 14:51 #2
Так где вваша реализация сортировки?
0
Learx
1045 / 852 / 194
Регистрация: 31.03.2010
Сообщений: 2,486
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
Привет! Вот еще темы с решениями:

При инициализации массива объектов в одном методе, этот массив объектов не видно в других методах
static public void Load() { BaseObject objs = new...

Задание размера массива вручную
как задать размеры массива вручную, с экрана консоли? int size; int a =...

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

Сортировка объектов
Есть перечень инициализированных через конструктор объектов различных классов....


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

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

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