Endast sista repetionen sparas. Hur ändrar jag?
Uppgiften är att jag ska fråga användaren 4 gånger om modell, färg och årsmodell och sedan skriva ut allt som användaren har matat in. Vi ska använda oss av List och Class men vet inte hur jag ska få ihop det sista. Även tips på hur jag kan göra det snyggare osv uppskattas.
using System;
using System.Collections.Generic;
namespace Feb8
{
class Program
{
static void Main(string[] args)
{
var myCars = new List<Car>();
var newCar = new Car();
for (int i=0; i<4; i++)
{
Console.Write("Ange bilens modell: ");
newCar.modell = Console.ReadLine();
Console.Write("Ange bilens färg: ");
newCar.farg = Console.ReadLine();
Console.Write("Ange bilens årsmodell: ");
newCar.arsmodell = Convert.ToInt32(Console.ReadLine());
myCars.Add(newCar);
}
foreach (var bilar in myCars)
{
Console.WriteLine("bilens modell är " + newCar.modell + " och är " + newCar.farg + " och har årsmodellen " + newCar.arsmodell);
}
}
}
class Car
{
public string modell;
public string farg;
public int arsmodell;
}
}
Är problemet att sista bilens data skrivs ut fyra gånger? Kan då lösas så här t ex:
foreach (var car in myCars)
{
Console.WriteLine("bilens modell är " + car.modell + " och är " + car.farg + " och har årsmodellen " + car.arsmodell);
}
Lindehaven skrev:Är problemet att sista bilens data skrivs ut fyra gånger? Kan då lösas så här t ex:
foreach (var car in myCars) { Console.WriteLine("bilens modell är " + car.modell + " och är " + car.farg + " och har årsmodellen " + car.arsmodell); }
Ovanstående räckte inte. Variabeln newCar behöver deklareras i varje slinga så att den får ny referens varje gång.
List<Car> myCars = new List<Car>();
for (int i=0; i<4; i++)
{
Car newCar = new Car();
// code...code
myCars.Add(newCar);
}