如何使用索引号

时间:2017-05-31 08:03:55

标签: c# object indexing

我想让我的程序更短,然后就是现在。 我制作8个不同的对象并用它们做事但我想用for循环和索引号这样做。 有没有办法做到这一点,因为我查了一下,但似乎找不到任何东西。

对象等等都是荷兰人抱歉的。

private void AankomstButton_Click(object sender, EventArgs e)
    {
        if (welkKind == 1)
        {
            if (File.Exists(@"Bestanden/" + kind1.Naam + "_" + DateTime.Now.ToString("Y") + ".txt") == false)
            {
                using (StreamWriter sw = new StreamWriter(@"Bestanden/" + kind2.Naam + "_" + DateTime.Now.ToString("Y") + ".txt")) ;

            }
            else
            {
                using (StreamWriter sw = File.AppendText(@"Bestanden/" + kind2.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {

                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }                   

            }
        }


        if (welkKind == 2)
        {
            if (File.Exists(@"Bestanden/" + kind2.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
            {
                using (StreamWriter sw = File.AppendText(@"Bestanden/" + kind2.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {
                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }
            }
            else
            {
                using (StreamWriter sw = new StreamWriter(@"Bestanden/" + kind2.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {
                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }
            }
        }
        if (welkKind == 3)
        {
            if (File.Exists(@"Bestanden/" + kind3.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
            {
                using (StreamWriter sw = File.AppendText(@"Bestanden/" + kind3.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {
                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }
            }
            else
            {
                using (StreamWriter sw = new StreamWriter(@"Bestanden/" + kind3.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {
                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }
            }
        }
        if (welkKind == 4)
        {
            if (File.Exists(@"Bestanden/" + kind4.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
            {
                using (StreamWriter sw = File.AppendText(@"Bestanden/" + kind4.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {
                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }
            }
            else
            {
                using (StreamWriter sw = new StreamWriter(@"Bestanden/" + kind4.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {
                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }
            }
        }
        if (welkKind == 5)
        {
            if (File.Exists(@"Bestanden/" + kind5.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
            {
                using (StreamWriter sw = File.AppendText(@"Bestanden/" + kind5.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {
                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }
            }
            else
            {
                using (StreamWriter sw = new StreamWriter(@"Bestanden/" + kind5.Naam + "_" + DateTime.Now.ToString("Y") + ".txt"))
                {
                    sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
                }
            }
        }

1 个答案:

答案 0 :(得分:1)

如果您保留一组子项(kind),则可以按索引访问该数组。

Kind[] children = new Kind[] { kind1, kind2 };

if (welkKind >= 0 && welkKind < children.Length)
{
    Kind kind = children[welkKind];

    string fileName = @"Bestanden/" + kind.Naam + "_" + DateTime.Now.ToString("Y") + ".txt";
    if (File.Exists(fileName))
    {
        using (StreamWriter sw = new StreamWriter(fileName))
        {
            sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
        }
    }
    else
    {
        using (StreamWriter sw = File.AppendText(fileName))
        {
            sw.WriteLine(DateTime.Now.ToString("d") + " Aangekomen: " + DateTime.Now.ToString("t"));
        }
    }
}

另一个选项是列表,其用法的语法相似,但您可以从列表中动态添加和删除项目:

List<Kind> children = new List<Kind>();
children.Add(kind1);
children.Add(kind2);
children.Add(new Kind() { Naam = "John" });

if (welkKind >= 0 && welkKind < children.Count)
{
    Kind kind = children[welkKind];
}