为for循环中的对象分配值

威尔苏

比方说,我有一个对象MyCharacterCharacter,它具有以下特性:HealthManaMoveSpeed
从另一种方法中,我得到一个包含这些统计信息的字符串,如下所示:
"Health: 100 Mana: 100 MoveSpeed: 100"
现在,我想将这些统计信息分配给我的对象。我当前的尝试是这样的:

// stats is the string I showed above
var statsArray = stats.Split(' ');
for (var i = 0; i < statsArray.Length; i++)
{
    switch(statsArray[i])
    {
        default:
            break;
        case "Health:":
            MyCharacter.Health = statsArray[i+1];
            break;
        case "Mana:":
            MyCharacter.Mana = statsArray[i+1];
            break;
        case "MoveSpeed:":
            MyCharacter.MoveSpeed = statsArray[i+1];
            break;
    }
}

现在,我知道统计信息的顺序。永远是生命值,然后是法力值,然后是MoveSpeed。因此,我正在寻找一种简化它的方法,即摆脱它switch(因为Character此处实际有18个统计信息,而且看起来并不理想)。
我的想法是遍历数组,并告诉程序将找到的第一个数字分配给Health,将第二个数字分配给Mana,将第三个数字分配给MoveSpeed。
这样的事情有可能吗?

由于您知道确切的格式,因此可以直接访问索引:

string stats = "Health: 100 Mana: 100 MoveSpeed: 100";

var statsArray = stats.Split(' ');
MyCharacter.Health = statsArray[1];
MyCharacter.Mana = statsArray[3];
MyCharacter.MoveSpeed = statsArray[5];

您还可以为此使用一个正则表达式,这样做的好处是可以进一步验证您的模式(因此,如果存在与格式匹配的情况,则会出现异常):

var m = Regex.Match(stats, @"Health: (\d+) Mana: (\d+) MoveSpeed: (\d+)");

MyCharacter.Health = m.Groups[1].Value;
MyCharacter.Mana = m.Groups[2].Value;
MyCharacter.MoveSpeed = m.Groups[3].Value;

注意:您可能希望这些属性包含整数,以便可以使用值进行计算,因此应调用int.Parse()每个值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在R中的for循环中创建动态命名的对象并分配动态值

来自分类Dev

在C ++ 11中的循环中为函数的返回值分配内存:如何优化?

来自分类Dev

如何在Python的for循环中为某些数据分配图例?

来自分类Dev

无法在for循环中为匿名函数分配变量

来自分类Dev

在for循环中分配值

来自分类Dev

在循环中分配数组的值

来自分类Dev

在for循环中为数据集分配交叉验证折叠

来自分类Dev

如何在R中的for循环中为列表键分配值

来自分类Dev

将对象分配给VBA循环中的数组

来自分类Dev

c#:全局变量值已更改,即使未在循环中为其分配新值

来自分类Dev

在R中的for循环中创建动态命名的对象并分配动态值

来自分类Dev

通过使用熊猫在循环中比较列和变量来为列分配值

来自分类Dev

如何在foreach循环中为char变量分配值?C#

来自分类Dev

如何按值将i分配给for循环中的对象?

来自分类Dev

在C ++ 11中的循环中为函数的返回值分配内存:如何优化?

来自分类Dev

在循环中仅将值分配给某些对象变量

来自分类Dev

循环中的对象属性重新分配

来自分类Dev

在for循环中分配值

来自分类Dev

致命错误-为for循环中的数组分配值

来自分类Dev

为foreach循环中的按钮分配唯一ID

来自分类Dev

为类型为AnyObject的对象分配值

来自分类Dev

使用for循环为对象属性分配多个值

来自分类Dev

while 循环中未分配值

来自分类Dev

为循环中的 var 分配新值

来自分类Dev

在 foreach/for 循环中为变量重新分配一个值,然后在循环外使用该值?

来自分类Dev

为 Tkinter 的 for 循环中创建的按钮分配功能

来自分类Dev

在循环中为每个用户存储值

来自分类Dev

无法在 ngFor 循环中分配值:无法分配给对象的只读属性

来自分类Dev

如何在循环中重新分配对象?

Related 相关文章

  1. 1

    在R中的for循环中创建动态命名的对象并分配动态值

  2. 2

    在C ++ 11中的循环中为函数的返回值分配内存:如何优化?

  3. 3

    如何在Python的for循环中为某些数据分配图例?

  4. 4

    无法在for循环中为匿名函数分配变量

  5. 5

    在for循环中分配值

  6. 6

    在循环中分配数组的值

  7. 7

    在for循环中为数据集分配交叉验证折叠

  8. 8

    如何在R中的for循环中为列表键分配值

  9. 9

    将对象分配给VBA循环中的数组

  10. 10

    c#:全局变量值已更改,即使未在循环中为其分配新值

  11. 11

    在R中的for循环中创建动态命名的对象并分配动态值

  12. 12

    通过使用熊猫在循环中比较列和变量来为列分配值

  13. 13

    如何在foreach循环中为char变量分配值?C#

  14. 14

    如何按值将i分配给for循环中的对象?

  15. 15

    在C ++ 11中的循环中为函数的返回值分配内存:如何优化?

  16. 16

    在循环中仅将值分配给某些对象变量

  17. 17

    循环中的对象属性重新分配

  18. 18

    在for循环中分配值

  19. 19

    致命错误-为for循环中的数组分配值

  20. 20

    为foreach循环中的按钮分配唯一ID

  21. 21

    为类型为AnyObject的对象分配值

  22. 22

    使用for循环为对象属性分配多个值

  23. 23

    while 循环中未分配值

  24. 24

    为循环中的 var 分配新值

  25. 25

    在 foreach/for 循环中为变量重新分配一个值,然后在循环外使用该值?

  26. 26

    为 Tkinter 的 for 循环中创建的按钮分配功能

  27. 27

    在循环中为每个用户存储值

  28. 28

    无法在 ngFor 循环中分配值:无法分配给对象的只读属性

  29. 29

    如何在循环中重新分配对象?

热门标签

归档