Member 13975230 Ответов: 2

Как найти значение, присвоенное имени в файле .txt?


Например, я получил файл .txt, в котором есть названия автомобилей, количество каждого автомобиля, год их изготовления и их цена:
5
ORION; 2; 1935; 365.1;
POLARIS; 1; 1988; 87.09;
INDUSTRIERAD; 10; 1995; 58.10;
Bauer; 25; 2008; 285.58;
HERREN; 15; 2012; 1040.42;

Я нахожу максимальное значение с for cycle, которое составляет 1040,42. Поэтому далее мне нужно найти имя max values(Herren), количество той машины, которая там есть, и год ее изготовления.
Так что проблема в том, что я не знаю, как найти все это. Мне нужно использовать "для" и "если", но я понятия не имею, как это сделать.

Что я уже пробовал:

Все, что есть в интернете.

2 Ответов

Рейтинг:
1

Ehsan Sajjad

Сначала создайте POCO, который представляет в соответствии с вашими данными:

public class Car
{
	public string Name { get;set;}
	public int Amount { get;set;}
	public int Year { get;set;}
	public decimal Price { get;set;}
	
	public override String ToString()
	{
		return String.Format("Name:{0},Amount{1},Year:{2},Price:{3}",Name,Amount,Year,Price);
	}
}


а затем прочитайте файл, а затем создайте коллекцию, а затем используйте linq, чтобы получить автомобиль с самой высокой ценой и распечатать его:

var lines = File.ReadAllLines("cars.text");

int totalCars = Convert.ToInt32(lines[0]);
		List<Car> cars = new List<Car>();
		for(int i = 1; i < totalCars; i++)
		{
			var line = lines[i];
			var carInfo = line.Split(';');
			
			Car car = new Car();
			car.Name = carInfo[0];
			car.Amount = Convert.ToInt32(carInfo[1]);
			car.Year = Convert.ToInt32(carInfo[2]);
			car.Price = Convert.ToDecimal(carInfo[3]);
			
			cars.Add(car);
		}
		
		var carWithHighestPrice = cars.OrderByDescending(x=>x.Price).First();
		
		Console.WriteLine(carWithHighestPrice);


Рейтинг:
0

CPallini

Взгляните на это CodeProject статья: C# - легкий и быстрый CSV-парсер[^].