2014-11-02 83 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

也许阵列是不是你的情况下正确的类型。 – 2014-11-02 16:50:08

+1

不要为此使用数组,请定义一个表达玩家相关数据的类。 – 2014-11-02 16:50:47

+4

'玩家'类可以将相关信息保存在一起,并且列表可以更容易地管理多个玩家 – Plutonix 2014-11-02 16:51:19

回答

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); 
    } 
}