Передача массива в поле структуры - C#
Формулировка задачи:
Необходимо передать массив из 3 значений передать в аналогичное поле в структуре. При попытке копирования вылетает ошибка
проблема в этой части
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*Описать структуру с именем NOTE, содержащую следующие поля:
* фамилия, имя;
* номер телефона;
* дата рождения (массив из трех чисел).
* Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из
* восьми элементов типа NOTE(записи должны быть упорядочены по дате рождения);
* вывод на экран информации о человеке, номер телефона которого введен с клавиатуры (если такого нет,
* вывести соответствующее сообщение).
*/
namespace Lab3_1
{
struct Note
{
string _surname;
string _name;
int _phone;
int[] _birthday;
public Note(string surname, string name, int phone, int[] birthday)
{
if (birthday.Length != 3)
throw new Exception("Массив должен состоять из трёх чисел.");
_surname = surname;
_name = name;
_phone = phone;
_birthday = new int[3];
_birthday = birthday;
}
public string Surname
{
get
{
return _surname;
}
set
{
_surname = value;
}
}
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
public int Phone
{
get
{
return _phone;
}
set
{
_phone = value;
}
}
public int[] Birthday
{
get
{
return _birthday;
}
set
{
if (value.Length != 3)
throw new Exception("Массив должен состоять из трёх чисел.");
_birthday = value;
}
}
public override string ToString()
{
return "Фамилия: " + this.Surname + " Имя: " + this.Name + "\nНомер телефона: " + this.Phone;
}
};
class Program
{
static void Main(string[] args)
{
Note[] note = new Note[2];
int[] BDay = new int[3];
string[] template = {"Введите число: ", "Введите месяц: ", "Введиет год: "};
//DateTime date = new DateTime();
//DateTime dateTMP = new DateTime();
Console.WriteLine("Заполнять в ручную?(Y/N)");
string res = Console.ReadLine();
if (res == "N" || res == "n")
{
string[] surname = {"dsd", "zgf"};
string[] name = {"wfwe", "eww"};
int[] phone = {2342, 12312};
int[,] bday = {
{20, 5, 1994},
{15, 2, 1990}
};
for (int i = 0; i < note.Length; i++)
{
note[i].Surname = surname[i];
note[i].Name = name[i];;
note[i].Phone = phone[i];
for (int j = 0; j < 3; j++)
{
BDay[j] = bday[i, j];
}
Array.Copy(note[i].Birthday, BDay, 0);
//BDay.CopyTo(note[i].Birthday, 0);
//note[i].Birthday.CopyTo(BDay, 0);
}
}
else
{
Console.WriteLine("Введите новую запись.");
for (int i = 0; i < note.Length; i++)
{
Console.Write("Введите фамилию: ");
note[i].Surname = Console.ReadLine();
Console.Write("\tВведите имя: ");
note[i].Name = Console.ReadLine();
Console.Write("\nВведите номер телефона: ");
note[i].Phone = int.Parse(Console.ReadLine());
Console.WriteLine("Введите дату рожденияч");
for (int j = 0; j < 3; j++)
{
Console.Write(template[j]);
BDay[j] = int.Parse(Console.ReadLine());
}
note[i].Birthday = BDay;
}
}
//date = new DateTime(note[0].Birthday[2], note[0].Birthday[1], note[0].Birthday[0]);
//for (int i = 0; i < note.Length; i++)
//{
// for (int j = i + 1; j < note.Length; j++)
// {
// dateTMP = new DateTime(note[j].Birthday[2], note[j].Birthday[1], note[j].Birthday[0]);
// if (date > dateTMP)
// {
// var tmp = note[i];
// note[i] = note[j];
// note[j] = tmp;
// }
// else
// {
// var tmp = note[j];
// note[j] = note[i];
// note[i] = tmp;
// }
// }
//}
for (int i = 0; i < note.Length; i++)
{
Console.WriteLine(note[i].Surname);
Console.WriteLine(note[i].Name);
Console.WriteLine(note[i].Phone);
for (int j = 0; j < 3; j++)
{
Console.Write(note[i].Birthday[j]);
if (j != 2)
{
Console.Write(".");
}
}
Console.WriteLine();
}
Console.WriteLine("\nВведите номер телефона для поиска:");
for (int i = 0; i < note.Length; i++)
{
if (int.Parse(Console.ReadLine()) == note[i].Phone)
{
Console.WriteLine(note[i].Surname);
Console.WriteLine(note[i].Name);
for (int j = 0; j < 3; j++)
{
Console.Write(note[i].Birthday[j]);
if (j != 2)
{
Console.Write(".");
}
}
Console.WriteLine();
}
}
Console.ReadKey();
}
}
} for (int i = 0; i < note.Length; i++)
{
note[i].Surname = surname[i];
note[i].Name = name[i];;
note[i].Phone = phone[i];
for (int j = 0; j < 3; j++)
{
BDay[j] = bday[i, j];
}
Array.Copy(note[i].Birthday, BDay, 0);
//BDay.CopyTo(note[i].Birthday, 0);
//note[i].Birthday.CopyTo(BDay, 0);
}Решение задачи: «Передача массива в поле структуры»
textual
Листинг программы
int[] a = new int[] { 1, 2, 3 };
int[] b = new int[3];
for (int i = 0; i < a.Length; i++)
{
b[i] = a[i];
}