edit: чтобы прояснить вопрос, я пытаюсь сжать мой код, храня несколько объектов (которые все должны быть нарисованы в разных позициях и манерах, и каждый имеет свои собственные свойства, такие как форма) в списке. Я хотел бы иметь возможность получить доступ к одному из этих свойств из любого данного объекта в списке для различных целей, таких как рисование спрайта, уникального для этого элемента в списке, позже в моей программе.
Я пытаюсь получить доступ к свойствам, специфичным для каждого отдельного объекта в списке, который я создал, но не могу понять, что это правильно. Я думаю, что мне не хватает чего-то фундаментального со списками! Вот мой класс, где я определяю острова:
class Island
{
public string IslandName { get; set; }
public Vector2 Position { get; set; }
public Rectangle IslandRectangle { get; set; }
public Island(string name, Vector2 position, Rectangle rectangle)
{
name = this.IslandName;
position = this.Position;
rectangle = this.IslandRectangle;
}
}
Затем в моем методе Main я создаю новый список островов (пока только один):
List<Island> allIslands = new List<Island>()
{
new Island("ShepherdsLookout", new Vector2(200, 200), new Rectangle(200,200, 50, 50))
};
В методе рисования моей игры я хочу иметь доступ к прямоугольнику, специфичному для этого острова, например, вместо того, чтобы писать:
spritebatch.draw(sprite, new vector2D(200, 200), new rectangle(200, 200, 50, 50));
Я бы хотел сделать что-то вроде этого псевдокода:
spritebatch.draw(sprite, islands.shepherdslookout.position, islands.shepherdslookout.rectangle);
Я пытался использовать IEnumerable, чтобы сделать это:
IEnumerable<Island> ShepherdsLookout = from island in allIslands where island.IslandName == "ShepherdsLookout" select island;
но, похоже, это тоже не работает: /
Мне нужен цикл foreach или что-то? Я чувствую, что есть какой-то способ сделать это с Линком, но я не уверен.