如何使此代码更实用或更“漂亮”

问题描述 投票:0回答:1

因此,我一直在进行需要按一下按钮才能执行此行的项目。

if (listView1.SelectedItems[0].SubItems[3].Text == "0") //Checks to see Value
                {
                    listView1.SelectedItems[0].SubItems[3].Text = "1";// If Value is Greater, Increase and Change ListView
                    questionNumberLabel.Text = listView1.SelectedItems[0].SubItems[3].Text;// Increase and Change Label
                }

现在,我将其重复大约10次,每个值增加一。但是我知道这很丑陋,并且功能失调。以及扩展文件大小。我已经尝试了几件事。主要是这种方法。

 if (listView1.SelectedItems[0].SubItems[3].Text == "0")
                {
                    for (var i = 1; i < 100;)
                    {
                        if (!Int32.TryParse(listView1.SelectedItems[0].SubItems[3].Text, out i))
                        {
                            i = 0;
                        }

                        i++;

                        listView1.SelectedItems[0].SubItems[3].Text = i.ToString();

                        Console.WriteLine(i);
                    }
                }

但是它不只是添加一个,而是执行了100个实例并结束。之所以在***中成为麻烦,是因为'listView1.SelectedItems [0] .SubItems [3] .Text'就是这样。它是字符串,而不是int。这就是为什么我解析它并尝试像这样运行它的原因。但我仍然没有结果。

我也尝试过这个

string listViewItemToChange = listView1.SelectedItems[0].SubItems[3].Text;

然后解析该字符串,使其更漂亮。它的工作方式像以前一样,但是仍然没有给我想要的结果。需要重申的是,我希望将从列表视图中获取的String更改为int,在for循环中使用,将其加1,然后重新进行字符串化并将其输出到我的listView上。请帮助:(

c# string parsing int pretty-print
1个回答
0
投票

您说您希望将listview子项中的文本转换为int,然后将其用于循环中

所以-首先创建循环变量i,然后在循环中为其分配可能的3个不同值,其中i ++将其中2个取反。没有一个是有意义的,并且您不应该那样操纵循环变量(除非理解您在做什么)。

如果您稍微移动一下语句。

int itemsToCheck = 10; // "Now I have this repeated about 10 times "

for (var item = 0; item < itemsToCheck; item++)
        {
            int i;                
            if (!Int32.TryParse(listView1.SelectedItems[item].SubItems[3].Text, out i))
            {
                i = 0;
            }

            i++;

            listView1.SelectedItems[item].SubItems[3].Text = i.ToString();

            Console.WriteLine(i);
        }

沿着这些思路寻找的东西。我没有更改您的代码对i所做的操作,只是添加了一个循环变量itemsToCheck,因此您的循环变量和解析值不是相同的,这很可能会引起错误。

© www.soinside.com 2019 - 2024. All rights reserved.