2014-11-02 3 views
0

Привет Я создаю программу, которая содержит три массива один для фамилии людей, один для очков и один для номера игрока, теперь у меня есть все массивы и все сделано, но я не уверен, как как я собираюсь удалить запись для нескольких массивов. до сих пор это то, что у меня есть для моего метода удаления игрока. Некоторые рекомендации в правильном направлении действительно поможет, пожалуйста, и спасибоМассивы, как удалить записи в нескольких массивах?

static Int32[] ProcessDelete(Int32[] playerNumbers, String[] playerLastName, Int32[] playerPoints, ref Int32 playerCount) 
     { 
      Int32[] newArray = new int[playerNumbers.Length - 1]; 

      int index = 0; 
      int j = 0; 
      while (index < playerNumbers.Length) 
      { 
       if (index != playerCount) 
       { 
        newArray[j] = playerNumbers[index]; 
        j++; 
       } 

       index++; 
      } 

      return newArray; 

     } 

     static void DeletePlayer(Int32[] playerNumbers, String[] playerLastName, Int32[] playerPoints, ref Int32 playerCount, Int32 MAXPLAYERS) 
     { 
      int player;// Player number to delete 
      int playerindex;//index of the player number in Array 
      if (playerCount < MAXPLAYERS) 
      { 

       player = GetPositiveInteger("\nDelete Player: please enter the player's number"); 
       playerindex = GetPlayerIndex(player, playerNumbers, playerCount); 

       if (playerindex != -1) 
       { 

        {  

         Console.WriteLine("\nDelete Player: Number - {0}, Name - {1}, Points - {2}", playerNumbers[playerindex], playerLastName[playerindex], playerPoints[playerindex]); 
         Console.WriteLine("Succesfully Deleted"); 
         Console.WriteLine(); 

        } 
       } 
       else 
        Console.WriteLine("\nDelete Player: player not found"); 
      } 
      else 
       Console.WriteLine("\nDelete Player: the roster is empty"); 
     } 

    } 
} 
+2

Может быть, массив не правильный тип для вашего случая. –

+1

Не используйте для этого массивы, определите класс, который выражает соответствующие данные для игрока. –

+4

класс 'Player' будет содержать связанную информацию вместе, а в списке будет проще управлять несколькими игроками – Plutonix

ответ

1

Есть ли какой-либо причине простой объектно-ориентированный подход не будет работать в вашем случае?

public class Player 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public int Number { get; set; } 
    public int Points { get; set; } 
} 

public class TeamManager 
{ 
    List<Player> players; 

    public TeamManager() 
    { 
     this.players = new List<Player>(); 
    } 

    public void Add(Player player) 
    { 
     this.players.Add(player); 
    } 

    public bool Delete(Player player) 
    { 
     if (this.players.Contains(player)) 
      return this.players.Remove(player); 
     else 
      return false; 
    } 
} 

Как в комментарии к вопросу. У вас может быть простая структура данных, чтобы держать данные игрока и более удобную для пользователя коллекцию для управления группой игроков.

Затем вы можете использовать его так:

class Program 
{ 
    static void Main(string[] args) 
    { 
     var player1 = new Player 
     { 
      Id = 1, 
      Name = "Mike", 
      Number = 13, 
      Points = 5, 
     }; 

     var team = new TeamManager(); 
     team.Add(player1); 
     team.Delete(player1); 
    } 
} 
Смежные вопросы