Please read all comments to the question.
Strongly recommend you to forget about separate array for each object: persons, points, etc.
Have a look at example. I write it just for fun and to show you more elegant solution:
void Main()
{
List<Player> players = new List<Player>{
new Player("Dorothy", 59),
new Player("Anthony", 52),
new Player("Frederic", 25),
new Player("Timothy", 15),
new Player("Rebeca", 55),};
Console.WriteLine("Initial count of players: {0}", players.Count());
Player p = new Player("Maciej", 0);
players.Add(p);
Console.WriteLine("After addition: {0}", players.Count());
players.Remove(p);
Console.WriteLine("After deletion : {0}", players.Count());
Console.WriteLine();
var qry = from pl in players
select new{Name=pl.PlayerName, Points=pl.Points, Total=(from pp in players select pp.Points).Sum()};
foreach(var pp in qry)
{
Console.WriteLine("{0} reached {1} points; total: {2}", pp.Name, pp.Points, pp.Total);
}
}
public class Player
{
private string playername = string.Empty;
private int ppoints = 0;
public Player(string sName, int iPoints)
{
playername = sName;
ppoints = iPoints;
}
public string PlayerName
{
get
{
return playername;
}
set
{
playername = value;
}
}
public int Points
{
get
{
return ppoints;
}
set
{
ppoints = value;
}
}
}
Result:
Initial count of players: 5
After addition: 6
After deletion : 5
Dorothy reached 59 points; total: 206
Anthony reached 52 points; total: 206
Frederic reached 25 points; total: 206
Timothy reached 15 points; total: 206
Rebeca reached 55 points; total: 206
Note: it's not complete sample, but an idea!
As you can see, it's much, much easier to manage one list rather than 3 arrays.