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

Вывод значений коллекции, построчно для каждого элемента

27.02.2018, 20:29. Показов 3587. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, совсем не понимаю. Вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 List<Transport> temp = new List<Transport>();
            temp.Add(p1);
            temp.Add(p2);
            temp.Add(p3);
            temp.Add(p4);
            temp.Add(c1);
            temp.Add(c2);
            temp.Add(c3);
            temp.Add(c4);
            temp.Add(s1);   
            temp.Add(s2);
            temp.Add(s3);
            temp.Add(s4);
 
            Console.WriteLine("Count: {0}", temp.Count);
            foreach (var value in temp)
            {
                Console.WriteLine(value);
            }
как я понимаю должны выводиться значения переменных каждого элемента , а выводится
Count: 12
AutoTrans.Transport+Passenger
AutoTrans.Transport+Passenger
AutoTrans.Transport+Passenger
AutoTrans.Transport+Passenger
AutoTrans.Transport+Cargo
AutoTrans.Transport+Cargo
AutoTrans.Transport+Cargo
AutoTrans.Transport+Cargo
AutoTrans.Transport+Cargo+SpecCargo
AutoTrans.Transport+Cargo+SpecCargo
AutoTrans.Transport+Cargo+SpecCargo
AutoTrans.Transport+Cargo+SpecCargo
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2018, 20:29
Ответы с готовыми решениями:

Доступ из элемента коллекции к другим элементам коллекции
Подскажите как получить данные из другого элемента коллекции? В приведенном примере необходимо реализовать метод который бы брал значение...

Форма с submit для каждого элемента коллекции
Всем привет. Туплю. Есть коллекция объектов, которая передается в представление. Для каждого элемента в представлении создаю...

Для каждого внутреннего элемента матрицы найти сумму значений его соседей
Дана целочисленная прямоугольная матрица размера m×n, заполненная случайными числами. Для каждого внутреннего элемента матрицы (то есть...

17
 Аватар для Tsin
1180 / 488 / 188
Регистрация: 30.12.2012
Сообщений: 1,278
Записей в блоге: 2
27.02.2018, 20:50
kloppy69, нужно либо переопределить метод ToString() в классе Transport, либо выводить нужную информацию, обращаясь к полям класса.
Если есть затруднения, то код класса Transport в студию, и еще расскажите, что ожидаете получить в выводе.
0
0 / 0 / 3
Регистрация: 04.01.2014
Сообщений: 136
27.02.2018, 21:13  [ТС]
Tsin, классов несколько вложенные в Transport.Одна из задач: Вывести на консоль список тс, ну там еще сортировки группировки и выборка, но это уже другая история, должен справится. Код прилагаю:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace AutoTrans
{
   public class Transport     //общие класс транспорта
    {
        public string model;         //наименование
        public double consumption;   //расход топлива    
        public int maxMass;          //макс. допус. масса
        
       public class Passenger : Transport//класс пассажирский транспорт
        {
            public int passQty;     //кол-во пасс. мест
 
            public Passenger(string m,double c, int mas,int p)//конструктор пассажирских
            {
                model = m;
                consumption = c;
                maxMass = mas;
                passQty = p;
            }
        }
 
        public  class Cargo : Transport  //грузовики
        {
            public double cargoVol;    //объем груза
            public int cargoMass; //масса груза
 
            public Cargo(string m,double c, int mas,double v,int mm ) //конструктор грузовых
            {
                model = m;
                consumption = c;
                maxMass = mas;
                cargoVol = v;
                cargoMass = mm;
 
            }
 
           public class SpecCargo : Cargo //спец грузовики
            {
                string regInf;      //номер и дата освидетельствования
                string specs;       //специализация
 
                public SpecCargo (string m,double c, int mas,double v,int mm,string r, string s ) //конструктор грузовых
                    : base(m,c,mas,v,mm)
                {
                model = m;
                consumption = c;
                maxMass = mas;
                cargoVol = v;
                cargoMass = mm;
                regInf = r;
                specs = s;
            }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Transport.Passenger p1 = new Transport.Passenger("Газель",17.5,3500,14);
            Transport.Passenger p2 = new Transport.Passenger("Баргузин",13.3,2800,10);
            Transport.Passenger p3 = new Transport.Passenger("Toyota Coaster 4.2D",20.7,3170,30);
            Transport.Passenger p4 = new Transport.Passenger("Hyundai Aero City",37.3,10400,78);
 
            Transport.Cargo c1 = new Transport.Cargo("Камаз", 34.0, 7080,8.0,8000);
            Transport.Cargo c2 = new Transport.Cargo("Маз",29.7,5500,3.0,4500);
            Transport.Cargo c3 = new Transport.Cargo("Volvo FM 4x2",21.0, 10900, 10.0,11000);
            Transport.Cargo c4 = new Transport.Cargo("Renault T 440", 22.0,12000, 10.8, 11800);
 
            Transport.Cargo.SpecCargo s1 = new Transport.Cargo.SpecCargo("Volvo FM 4x2",21.0,11000,10.1,5000,
                "4565 еа 12.12.12", "рефрижиратор");
            Transport.Cargo.SpecCargo s2 = new Transport.Cargo.SpecCargo("Volvo FN 550", 30.5, 16000, 8.0, 15000,
                "6598 ie 5.02.13", "миксер");
            Transport.Cargo.SpecCargo s3 = new Transport.Cargo.SpecCargo("Камаз", 39.0, 8000, 9.0, 8000,
                "1251 aa 6.01.09", "лесовоз");
            Transport.Cargo.SpecCargo s4 = new Transport.Cargo.SpecCargo("Маз", 29.7, 5500,4.3,4500,
                "1176 оо 08.06.06", "молоковоз");
 
           
            List<Transport> temp = new List<Transport>();
            temp.Add(p1);
            temp.Add(p2);
            temp.Add(p3);
            temp.Add(p4);
            temp.Add(c1);
            temp.Add(c2);
            temp.Add(c3);
            temp.Add(c4);
            temp.Add(s1);   
            temp.Add(s2);
            temp.Add(s3);
            temp.Add(s4);
 
            
            foreach (var value in temp)
            {
                Console.WriteLine(value);
            }
        }
    }
}
0
22 / 25 / 8
Регистрация: 17.09.2017
Сообщений: 61
27.02.2018, 23:15
C#
1
2
3
4
foreach (var value in temp)
            {
                Console.WriteLine(value.model);
            }
может так подойдёт?
А лучше приведите пример того, что желаете получить в консоли. Всем проще будет.
0
 Аватар для Tsin
1180 / 488 / 188
Регистрация: 30.12.2012
Сообщений: 1,278
Записей в блоге: 2
27.02.2018, 23:29
Цитата Сообщение от kloppy69 Посмотреть сообщение
вложенные в Transport
Не должны они быть вложенными. Наследники - да. Вкладывать их не нужно.
Еще публичные поля нехорошо. И Transport можно абстрактным сделать, если проходили такое.

Советую пересмотреть классы с нуля. Опишите правильно и красиво класс Transport для начала и покажите.
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
28.02.2018, 00:42
Tsin, ну про абстрактный базовый - спорно, вдрюк понадобится и он
про поля - 100% свойства
класс Transport сам по себе, не должен включать другие классы, унаследованные от него-же
0
0 / 0 / 3
Регистрация: 04.01.2014
Сообщений: 136
03.03.2018, 21:07  [ТС]
Tsin, пересмотрел классы , как я понимаю сделал все правильно , но не понимаю как организовать вывод, вот класс transport
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
namespace Auto
{
    class Transport
    {
        string n_name;
        double c_consumptiom;
        int w_weight;
 
        public Transport(string t, string n, double c, int w)
        {
            type = t;
            Name = n;
            Consumption = c;
            Weight = w;
        }
      
        public string type
        { get; set; }
 
        public string Name
        {
            get{return n_name;}
          set{n_name = value;}
        }
 
        public double Consumption 
        {
            get { return c_consumptiom; }
            set { c_consumptiom = value; }
        }
 
        public int Weight
        {
            get { return w_weight; }
            set { w_weight = value; }
        }
 
    }
 
    class Passanger : Transport
 
    {
        int q_qty;
 
        public Passanger(string t, string n, double c, int w,int q):
            base ("Пассажирский",n,c,w)
        {
            Qty = q;
        }
 
        public int Qty
        {
            get {return q_qty;}
            set { q_qty = value; }
        }
    }
 
    class Cargo : Transport
    {
        double cs;
        int cw;
 
        public Cargo(string t, string n, double c, int w, double cs,
            int cw)
            : base("Грузовой", n, c, w)
        {
            CargoSpace = cs;
            CargoWeight = cw;
        }
 
        public double CargoSpace
        {
            get { return cs; }
            set { cs = value; }
        }
        public int CargoWeight
        {
            get { return cw; }
            set { cw = value; }
        }
    }
 
    class SpecCargo : Cargo
    {
        string reg;
        string spec;
 
        public SpecCargo(string t, string n, double c, int w, double cs,
            int cw, string reg, string spec)
            : base("Грузовой Специальный", n, c, w, cs, cw)
        {
            Register = reg;
            Special = spec;
        }
 
        public string Register
        {
            get { return reg; }
            set { reg = value; }
        }
 
        public string Special
        {
            get { return spec; }
            set { spec = value; }
        }
    }
}
а вот program
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Auto
{
    class Program
    {
        static void Main()
        {
            Transport[] auto= new Transport[12];
 
            auto[0] = new Passanger("пассажирский", "Газель", 17.5, 3500, 14);
            auto[1] = new Passanger("пассажирский", "Баргузин", 13.3, 2800, 14);
            auto[2] = new Passanger("пассажирский","Toyota",20.7,3170,30);
            auto[3] = new Passanger("пассажирский","Hyundai",37.3,10400,78);
            auto[4] = new Cargo("","Камаз",34.0,7080,8.0,8000);
            auto[5] = new Cargo("","Маз",29.7,5500,3.0,4500);
            auto[6] = new Cargo("","Volvo FM",21.0,10900,10.0,11000);
            auto[7] = new Cargo("","Renault", 22.0,12000,10.8,11800);
            auto[8] = new SpecCargo("","Volvo FM", 21.0,11000, 10.1,5000,"4587po 12.12.12","рефрижиратор");
            auto[9] = new SpecCargo("","Volvo FN",30.5,16000,8.0,15000,"4521kg 4.03.15", "миксер");
            auto[10] = new SpecCargo("","Маз", 29.7,5500,4.3,4500,"1100 oo 6.06.09","молоковоз");
            auto[11] = new SpecCargo("","Камаз",39.0,8000,9.0,8000,"1251 ea 07.04.05","лесовоз");
 
            for (int i = 0; i < 12; i++)
            {
                Console.WriteLine(auto[i].type,auto[i].Name,auto[i].Consumption,auto[i].Weight);
            }
        }
    }
}
На печать выдает только type((
0
29 / 31 / 27
Регистрация: 15.11.2017
Сообщений: 121
03.03.2018, 22:37
Лучший ответ Сообщение было отмечено kloppy69 как решение

Решение

Привел ваш код в нормальный вид.
Кликните здесь для просмотра всего текста

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
using System;
using System.Collections.Generic;
 
namespace Program
{
  class Transport
  {
    public string Type { get; }
    public string Name { get; }
    public double Consumption { get; }
    public double Weight { get; }
 
    public Transport() { }
 
    public Transport(string type, string name, double consumption, double weight)
    {
      Type = type;
      Name = name;
      Consumption = consumption;
      Weight = weight;
    }
 
    public override string ToString()
    {
      return $"Type: {Type}, name: {Name}, consumption: {Consumption}, weight: {Weight}";
    }
  }
 
  class PassengerTransport : Transport
  {
    public uint Quantity { get; }
    
    public PassengerTransport() : base() { }
 
    public PassengerTransport(string type, string name, double consumption, double weight, uint quantity)
      : base(type, name, consumption, weight)
    {
      Quantity = quantity;
    }
 
    public override string ToString()
    {
      return base.ToString() + $" quantity: {Quantity}";
    }
  }
 
  class CargoTransport : Transport
  {
    public double Space { get; }
 
    public CargoTransport() : base() { }
 
    public CargoTransport(string type, string name, double consumption, double weight, double space)
      : base(type, name, consumption, weight)
    {
      Space = space;
    }
 
    public override string ToString()
    {
      return base.ToString() + $" space: {Space}";
    }
  }
 
  class SpecialCargoTransport : Transport
  {
    public string Registration { get; }
    public string Specialization { get; }
 
    public SpecialCargoTransport() : base() { }
 
    public SpecialCargoTransport(string type, string name, double consumption, double weight, string registration, string specialization)
      : base(type, name, consumption, weight)
    {
      Registration = registration;
      Specialization = specialization;
    }
 
    public override string ToString()
    {
      return base.ToString() + $" registration: {Registration}, specialization: {Specialization}";
    }
  }
 
  class MainClass
  {
    static void Main()
    {
      var transports = new List<Transport>
      {
        new PassengerTransport("type1", "name1", 1, 2, 3),
        new CargoTransport("type2", "name2", 4, 5, 6),
        new SpecialCargoTransport("type3", "name3", 7, 8, "registration", "specialization")
      };
 
      foreach (var t in transports)
        Console.WriteLine(t?.ToString());
 
      Console.ReadKey();
    }
  }
}


Добавлено через 4 минуты
Мне кажется, не следует сокращать имена переменных так, как это делаете вы.
1
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
03.03.2018, 22:37
Console.WriteLine(auto[i].type + " " + auto[i].Name + " " + auto[i].Consumption + " " + auto[i].Weight);
0
0 / 0 / 3
Регистрация: 04.01.2014
Сообщений: 136
03.03.2018, 22:56  [ТС]
Хотя вывод первых четырех полей я произвёл, но как вывести остальные ??
C#
1
2
3
4
5
6
7
8
9
10
Console.WriteLine("Тип\t            Модель\tРасход\t        Предельная масса");
            for (int i = 0; i < 12; i++)
            {
                
                Console.Write("{0}\t",auto[i].type);
                Console.Write("{0,10}\t",auto[i].Name);
                Console.Write("{0} л/100км\t", auto[i].Consumption);  
                Console.WriteLine("{0}кг",auto[i].Weight);
                
            }
Добавлено через 44 секунды
не подскажите как остальные поля вывести?
0
29 / 31 / 27
Регистрация: 15.11.2017
Сообщений: 121
03.03.2018, 22:57
kloppy69, я показал вам способ.
0
0 / 0 / 3
Регистрация: 04.01.2014
Сообщений: 136
03.03.2018, 23:06  [ТС]
Простите не заметил)

Добавлено через 4 минуты
VIAZNIKOVGM, я так понимаю это общий вид? или я какую-то сборку не подключил? как-то много студия ругается

Добавлено через 1 минуту
Или тут имеется разница в версиях студии?
0
29 / 31 / 27
Регистрация: 15.11.2017
Сообщений: 121
03.03.2018, 23:07
kloppy69, странно, у меня ни одного предупреждения нет.

Добавлено через 1 минуту
kloppy69, .Net Framework 4.6
0
0 / 0 / 3
Регистрация: 04.01.2014
Сообщений: 136
03.03.2018, 23:16  [ТС]
Да возможно, сейчас проверю

Добавлено через 3 минуты
все установлено, подскажите а какая версия студии у Вас, я просто работаю в 12, возможно в этом причина
0
29 / 31 / 27
Регистрация: 15.11.2017
Сообщений: 121
03.03.2018, 23:23
kloppy69, 2017

Добавлено через 4 минуты
kloppy69, возможно, проблема в этом:
При изменении целевой версии платформы одновременно изменяется набор инструментов платформы для обеспечения поддержки этой версии. Например, для поддержки версии .NET Framework 4.5 необходимо использовать совместимый набор средств платформы, например Visual Studio 2015 (версия 140), Visual Studio 2013 (версия 120) или Visual Studio 2012 (версия 110). Можно использовать набор инструментов Windows7.1SDK для работы с платформами .NET Framework 2.0, 3,0, 3.5, 4, а также x86, x64 и Itanium.

Добавлено через 49 секунд
https://msdn.microsoft.com/ru-... 70576.aspx
0
0 / 0 / 3
Регистрация: 04.01.2014
Сообщений: 136
03.03.2018, 23:25  [ТС]
то есть платформа не при чём?
0
29 / 31 / 27
Регистрация: 15.11.2017
Сообщений: 121
03.03.2018, 23:28
kloppy69, я вам ссылку кинул, там есть инструкция по изменению версии .NET Framework в проекте. Возможно, она не меняется автоматически после обновления. Попробуйте, если не поможет, то я не знаю(
0
0 / 0 / 3
Регистрация: 04.01.2014
Сообщений: 136
04.03.2018, 12:48  [ТС]
Не меняется , накатываю 2017, там буду разбираться, спасибо)

Добавлено через 13 часов 15 минут
VIAZNIKOVGM, один небольшой вопрос,так сказать оффтоп, для сортировки и группировки создавать отдельный метод в Transport или есть возможность пользоваться уже существующим и работать через Linq?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2018, 12:48
Помогаю со студенческими работами здесь

Вывод соответствующих данных для каждого элемента списка
Здравствуйте. Проблема заключается в следующем. Имеется список выводимый запросом из базы данных. $list = $connect-&gt;query(' ...

Создание прямоугольного массива и вывод для каждого четного элемента его порядкового номера
Написать программу, которая создаёт прямоугольный массив и используя процедуру, выводит для каждого четного элемента его порядковый номер.

Функция, которая возвращает список булевских значений четности каждого элемента заданного элемента целочисленного списка
Определите рекурсивные функции для решения задачи. НЕ РЕКОМЕНДУЕТСЯ использовать функции высших порядков. Сама задача: Возвращает список...

Удаление элемента коллекции в коллекции коллекции )
Есть коллекция (к1), в ней элементы + коллекция (к2), Так вот в к2 тоже есть элементы, и из к2 надо удалить элемент. к1 отображается на...

Сформировать статистический ряд и получить кол-во значений каждого элемента.
Уважаемые гуру своего дела, прошу помощи: Есть таблица: матрица А: 2 4 2 6 3 6 5 2 ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru