简体   繁体   English

将数字添加到字符串数组

[英]add a Number to an array of strings

I made this Object Player(int number, string name, string guild, int hp, int mana) And from a CSV File I'm reading a list of Players. 我创建了这个Object Player(int number, string name, string guild, int hp, int mana)然后从CSV文件中读取了Player列表。

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

It gives me an error because parts 0, 3 and 4 should be strings, since it's an array of strings. 这给我一个错误,因为0、3和4部分应该是字符串,因为它是字符串数组。 I already tried parts[0].ToString() etc, but it's no help 我已经尝试过parts[0].ToString()等,但这没有帮助

You need to parse the strings: 您需要解析字符串:

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

But that's the bare minimum - I would also move the parsing to separate statements before the Player construction you you could add error checking/validation/etc. 但这是最低限度的要求-在Player构造之前 ,您还可以将解析移动到单独的语句, 然后再添加错误检查/验证/等。

As it stands now, if parts 0, 3, or 4 are not parsable, you'll get a vague run-time exception with no context as to which value causes the error. 到目前为止,如果部分0、3或4是不可解析的,则您将得到一个模糊的运行时异常,没有上下文确定哪个值会导致错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM