Поиск нескольких экземпляров с максимальным значением поля - C#
Формулировка задачи:
Дан код задания с созданным классом:
ПРОЦЕССОР: производитель (строка), модель (строка), тактовая частота в MHz (целое)
выполнен поиск по процессору с максимальной частотой. В поиске нужно что бы выводились несколько одинаковых процессоров с максимальной частотой (сейчас же он выводит лишь один одинаковый процессор с максимальной частотой)
Код программы.
namespace ConsoleApplication24
{
class Program
{
static void Main()
{
Processor[] processors = new Processor[3];
for (int i = 0; i < processors.Length; i++)
{
processors[i] = new Processor();
Console.Write("Enter Manufacturer: ");
processors[i].Manufacturer = Console.ReadLine();
Console.Write("Enter Model: ");
processors[i].Model = Console.ReadLine();
Console.Write("Enter chastota: ");
processors[i].Frequency = Int32.Parse(Console.ReadLine());
}
Console.WriteLine();
foreach (Processor p in processors)
Console.WriteLine(p.ProcessorInfo());
Processor fastest = processors[0];
foreach (Processor p in processors)
if (p.Frequency > fastest.Frequency)
fastest = p;
Console.WriteLine("processor max chastots:");
Console.WriteLine();
Console.WriteLine("chastota:\r\n {0}", fastest.ProcessorInfo());
Console.ReadKey();
}
}
public class Processor
{
private string manufacturer;
private string model;
private int frequency;
public string Manufacturer
{
get { return manufacturer; }
set { if (manufacturer != value) manufacturer = value; }
}
public string Model
{
get { return model; }
set { if (model != value) model = value; }
}
public int Frequency
{
get { return frequency; }
set { if (frequency != value) frequency = value; }
}
public string ProcessorInfo()
{
return string.Format("Manufacturer: {0}\r\nModel: {1}\r\nchastota: {2}\r\n", Manufacturer, Model, Frequency);
}
}
}Решение задачи: «Поиск нескольких экземпляров с максимальным значением поля»
textual
Листинг программы
List<Processor> result = new List<Processor>();
for (int i = 1; i < processors.Length; i++)
{
if (processors[i].Frequency > max.Frequency)
{
max = processors[i];
}
}
for (int i = 0; i < processors.Length; i++)
{
if (processors[i].Frequency == max.Frequency)
{
result.Add(processors[i]);
}
}
Console.WriteLine("processor max chastots:");
Console.WriteLine();
for (int i = 0; i < result.Count; i++)
{
Console.WriteLine("chastota:\r\n {0}", result[i].ProcessorInfo());
}
Console.ReadKey();