Как правильно передать массив структур в функцию в структуре - C#
Формулировка задачи:
Функция Search должна принимать массив, у меня это массив структур, как это правильно сделать? В моем случае я получаю ошибку.
Аргумент 1: не удается преобразовать из "Project11.Bus" в "Project11.Bus[]". Project11
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace Project11
- {
- struct Bus
- {
- public int N;
- public string Pn;
- public double Vo;
- public double Vp;
- public Bus(int n, string pn, double vo, double vp)
- {
- this.N = n;
- this.Pn = pn;
- this.Vo = vo;
- this.Vp = vp;
- }
- public void Show()
- {
- Console.WriteLine("№ рейса " + this.N);
- Console.WriteLine("Пункт назначения: " + this.Pn);
- Console.WriteLine("Время отправления: " + this.Vo);
- Console.WriteLine("Время прибытия : " + this.Vp);
- }
- public void Write()
- {
- string fileName = "bus.txt";
- FileStream aFile = new FileStream(fileName, FileMode.OpenOrCreate);
- StreamWriter sw = new StreamWriter(aFile);
- aFile.Seek(0, SeekOrigin.End);
- sw.WriteLine("№ рейса " + this.N);
- sw.WriteLine("Пункт назначения: " + this.Pn);
- sw.WriteLine("Время отправления: " + this.Vo);
- sw.WriteLine("Время прибытия : " + this.Vp);
- sw.WriteLine();
- sw.Close();
- Console.WriteLine();
- Console.WriteLine("Данные записаны в файл");
- }
- public void Search(Bus[] arr, double _xtime, int k)
- {
- double xtime = _xtime;
- int z = 0;
- int g = k - 1;
- int m;
- while (z < g)
- {
- m = (z + g) / 2;
- if (xtime > arr[m].Vo)
- z = m + 1;
- else
- g = m;
- }
- if (arr[z].Vo == xtime)
- {
- arr[z].Show();
- Console.WriteLine("--------------------------");
- }
- else
- {
- Console.WriteLine("такого рейса не существует");
- Console.WriteLine("--------------------------");
- }
- }
- }
- class PR11
- {
- public static void Main()
- {
- int k = 5;
- Bus[] bus = new Bus[k];
- bus[0] = new Bus(122, "Paris", 14.00, 14.50);
- bus[1] = new Bus(12, "Vena", 16.00, 17.35);
- bus[2] = new Bus(121, "Roma", 7.20, 8.15);
- bus[3] = new Bus(356, "London", 13.00, 17.30);
- bus[4] = new Bus(356, "Praha", 10.00, 21.30);
- Console.Read();
- Console.Read();
- Console.WriteLine("Сортировка по времени отправки......");
- Bus tmp = new Bus();
- for (int i = 0; i < bus.Length; i++)
- {
- for (int j = i + 1; j < bus.Length; j++)
- {
- if (bus[i].Vo > bus[j].Vo) //По возростанию
- {
- tmp = bus[i];
- bus[i] = bus[j];
- bus[j] = tmp;
- }
- }
- }
- Console.WriteLine();
- Console.WriteLine("Поиск...");
- Bus.Search(bus[k],14.00,k);
- Console.Read();
- Console.Read();
- }
- }
- }
Решение задачи: «Как правильно передать массив структур в функцию в структуре»
textual
Листинг программы
- public static void Search(Bus[] arr, double _xtime, int k)
- {
- // ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д