У меня есть класс игрока, и у игрока есть список выстрелов.Каждый выстрел имеет свои yPos (позицию), потому что yPos игрока может измениться, но выстрел сохранит свою позицию:
class Player
{
public string Id { set; get; }
public int yPos { set; get; }
public List<Shot> shots;
public Player(string _Id, int _yPos)
{
Id = _Id;
yPos = _yPos;
}
}
class Shot
{
public int yPos { set; get; }
public Shot(int _yPos)
{
yPos = _yPos;
}
}
Тогда в какой-то момент в игре есть идентификатор, и мне нужно найти игрока.и добавьте в список его ударов новый выстрел с позицией игроков.Вот что я закончил:
string tempID = "xxx"; // not important where this temp id is coming from
players.Find(p => p.Id == tempID).shots.Add(new Shot(players.Find(p => p.Id == tempID).yPos));
И, кажется, все в порядке, но выглядит уж странно.Есть ли способ упростить это утверждение, чтобы мне не приходилось искать одного и того же игрока дважды в одном утверждении?