C#向List<Player>添加球员姓名时报string转Player类型错误如何解决
错误原因及修复方案
错误根源
你的players变量是List<Player>类型,要求存入的每个元素都必须是Player类的实例,但你调用Add方法时传入的是player.Name,也就是string类型的字符串,两种类型不匹配,因此触发类型转换报错。
你不需要把列表改为字典,现有List<Player>结构完全支持后续按索引交换球员位置的需求。
修复方法
你现有的AddPlayer方法入参已经是完整的Player对象,直接把对象添加到列表即可:
public void AddPlayer(Player player) { // 直接传入Player对象,而非单独的姓名字段 players.Add(player); }
可选扩展:支持直接传入姓名添加球员
如果后续有直接通过姓名新增球员的需求,可以额外重载一个AddPlayer方法:
public void AddPlayer(string playerName) { // 自行构造Player实例再存入列表 players.Add(new Player() { Name = playerName }); }
内容的提问来源于stack exchange,提问作者Juan Andres Gomez Botero
相关产品推荐
相关产品推荐

