我有我想要在下面做的簡化版本。我有一個由SolarSystem類使用的類Planet。我想使用foreach循環爲SolarSystem中的每個Planet編寫orbitTimeInDays。C#枚舉對象foreach
錯誤CS1579 foreach語句不能 型「TestEnum.SolarSystem」的變量操作,因爲「TestEnum.SolarSystem」不包含 一個公共定義「的GetEnumerator」
問題是枚舉,我已經閱讀了幾篇有關使對象成爲Enumerable的文章和問題,但我似乎無法解決如何將它應用於SolarSystem,以便檢查它構建的每個Planet。 (最終還會包含小行星等等,所以它不僅僅是8顆行星和冥王星。)
有人可以幫助我瞭解如何枚舉SolarSystem。
class Program
{
static void Main(string[] args)
{
SolarSystem solarSystem = new SolarSystem();
solarSystem.mercury.orbitTimeInDays = 88;
solarSystem.venus.orbitTimeInDays = 225;
// etc...
foreach (Planet planet in solarSystem)
{
Console.WriteLine("Time taken to orbit sun (in days) : " + planet.orbitTimeInDays.ToString());
}
}
}
public class Planet
{
public double distanceFromEarth { get; set; }
public int orbitTimeInDays { get; set; }
// etc...
public Planet() { }
}
public class SolarSystem
{
public Planet mercury { get; set; }
public Planet venus { get; set; }
// etc...
public SolarSystem()
{
mercury = new Planet();
venus = new Planet();
// etc...
}
}
問題是你的行星是同一類的每一個單獨的屬性,你可以做到這一點,使用一些幻想,但realisitcally,你會更好地與你的solarsystem中的行星列表..也許一些其他的道具,那麼你可以foreach的行星列表.. – BugFinder
一個'ForEach'循環對陣列等工作,類似的方式爲'for'循環。你有一個類而不是幾個屬性。 –