Сравнить объекты через Equals() - C#
Формулировка задачи:
Equals( ) – сравнивает две продажи (считаются равными, если совпадают название и цена). количество в учет не брать
метод Equals( ) обозначен не правильно
нужно реализовать в одном общем цикле вывод всех записей нахождение макс и являются ли все покупки равными (да/нет) через метод Equals( ). и после цикла вывести значение (да/нет). зачеркнутое сделано
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zadanie2_1
{
class UltraPokupka : Pokupka
{
int k=10;
public UltraPokupka(string newName, double newCena, int newKol)
{
Cena = newCena;
Name = newName;
Kol = newKol;
}
public override double GetCost()
{
if (Kol >= k)
{ return (Cena * Kol * (1 - 0.10)); }
else
{ return (Cena * Kol); }
}
public override string ToString()
{
return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zadanie2_1
{
class SuperPokupka : Pokupka
{
public SuperPokupka(string newName, double newCena, int newKol)
{
Cena = newCena;
Name = newName;
Kol = newKol;
}
public override double GetCost()
{
return ((Cena-1) * Kol);
}
public override string ToString()
{
return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zadanie2_1
{
class Pokupka
{
private string name;
private double cena;
private int kol;
public Pokupka(string newName, double newCena, int newKol)
{
Cena = newCena;
Name = newName;
Kol = newKol;
}
public Pokupka()
{
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public double Cena
{
get
{
return cena;
}
set
{
cena = value;
}
}
public int Kol
{
get
{
return kol;
}
set
{
kol = value;
}
}
public virtual double GetCost()
{
return (Cena * Kol);
}
public override string ToString()
{
return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
}
// public override bool Equals()
// {
// if (Cena == Cena && Name == Name) return true;
// else
// return false;
// }
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zadanie2_1
{
class Program
{
static void Main(string[] args)
{
Pokupka[] prod = new Pokupka[6];
prod[0] = new Pokupka("limon", 4, 6);
prod[1] = new Pokupka("limon", 4, 2);
// SuperPokupka[] prod = new SuperPokupka[2];
prod[2] = new SuperPokupka("limon", 4, 8);
prod[3] = new SuperPokupka("limon", 4, 10);
// SuperPokupka[] prod = new UltraPokupka[2];
prod[4] = new UltraPokupka("limon", 4, 5);
prod[5] = new UltraPokupka("limon", 4, 20);
Pokupka maxP = prod[0];
for (int i = 0; i < prod.Length; i++)
{
Console.WriteLine(prod[i]);
if (maxP.GetCost() < prod[i].GetCost())
{
maxP = prod[i];
}
};
// for (int i = 0; i < prod.Length; i++)
// {
// prod[i].Equals(prod[i+1]);
// };
Console.WriteLine();
Console.WriteLine(" макс. покупкa : {0}", maxP);
Console.ReadKey();
}
}
}Решение задачи: «Сравнить объекты через Equals()»
textual
Листинг программы
int k = 0;
int g = 0;
for (int i = 0; i < prod.Length; i++)
{
Console.WriteLine(prod[i]);
if (maxP.GetCost() < prod[i].GetCost())
{
maxP = prod[i];
}
if (prod[k].Equals(prod[k + 1]) == true)
{ g = g + 1; }
else
{ }
};
if (g == 6)
{ Console.WriteLine("да"); }
else { Console.WriteLine("нет"); }