在foreach循环中c#increment int变量

时间:2018-05-08 02:03:48

标签: c#

我用retroarch。它保存了保存状态的状态和屏幕截图。文件命名如下。

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
    public string path = @"C:\Users\User\Documents\Retroarch\states\";

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        GetList();
    }

    public void GetList()
    {
        int var = 0;
        string newVar = ".state" + var;

        string[] files = Directory.GetFiles(path, "*");

        foreach (var fileExt in files)
        {                
            string p = fileExt;                
            string e = Path.GetExtension(p);

            if (e == ".state" || e == newVar)
            {
                MessageBox.Show(newVar); //shows .state / no others
            }

            var++;

            MessageBox.Show(newVar); //shows newVar incrementing
            MessageBox.Show(e); //shows extension
        }
    }
}
}

等等。

最终我希望能够显示图像并单击它们以与.state进行交互。

if (e == ".state" || e == newVar)

我的if语句出现问题

authenticated field

它将显示第一个状态但不显示其他状态。我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试此更新。我只更改了if语句的内容。我们检查扩展名是否以“.state”开头。

public void GetList()
{
    int var = 0;
    string newVar = ".state" + var;

    string[] files = Directory.GetFiles(path, "*");

    foreach (var fileExt in files)
    {
        string p = fileExt;
        string e = Path.GetExtension(p);

        if (e.StartsWith(".state"))
        {
            MessageBox.Show(newVar); //shows .state / no others
        }

        var++;

        MessageBox.Show(newVar); //shows newVar incrementing
        MessageBox.Show(e); //shows extension
    }
}

并且,我真的同意Jesse C. Slicer不使用“var”作为变量名称会很好 - 例如可能将其更改为“后缀”。