将数字添加到字符串数组中

时间:2013-09-03 17:30:21

标签: c# arrays

我做了Object Player(int number, string name, string guild, int hp, int mana) 从CSV文件我正在阅读一个玩家列表。

   public static List<Player> GetPlayerFromCSV(string file)
    {
        List<Player> result = new List<Player>();
        using (StreamReader sr = new StreamReader(file))
        {
            string line = sr.ReadLine();
            if (line != null) line = sr.ReadLine();

        while (line != null)
        {
            Player pl = AddPlayer(line);
            if (pl != null) result.Add(pl);
            line = sr.ReadLine();
        }
    }
    return result;
}

private static Player AddPlayer(string line)
{
    line = line.TrimEnd(new char[] { ';' });
    string[] parts = line.Split(new char[] { ';' });

    if (parts.Length != 5) return null;

    Player pl = new Player(parts[0], parts[1], parts[2], parts[3], parts[4]);
    return pl;
}

public override string ToString()
{
    return Number + "  -  " + Name;
}

它给了我一个错误,因为0,3和4部分应该是字符串,因为它是一个字符串数组。 我已经尝试了parts[0].ToString()等,但没有帮助

1 个答案:

答案 0 :(得分:4)

您需要解析字符串:

Player pl = new Player(int.Parse(parts[0]), 
                       parts[1], 
                       parts[2], 
                       int.Parse(parts[3]), 
                       int.Parse(parts[4])
                      );

但这是最低限度 - 我还会在 Player构造之前将解析移动到单独的语句,您可以添加错误检查/验证/等。

现在看来,如果第0,3或4部分不可解析,你将得到一个模糊的运行时异常,没有关于哪个值导致错误的上下文。