Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单for循环给出与多for循环不同的结果_C#_Algorithm - Fatal编程技术网

C# 单for循环给出与多for循环不同的结果

C# 单for循环给出与多for循环不同的结果,c#,algorithm,C#,Algorithm,我试图学习编程,并编写了一段代码,用于将项添加到ArrayList中。有很多for循环,每个循环都在特定的时间间隔内运行,这给了我正确的结果。 但我并没有使用很多for循环,而是使用IF-Else语句尝试了一个for循环,但这并没有给出正确的结果 请问有谁能检查一下,看看出了什么问题吗 ArrayList dogs = new ArrayList(); ArrayList cats = new ArrayList(); ArrayList rabbits =

我试图学习编程,并编写了一段代码,用于将项添加到ArrayList中。有很多for循环,每个循环都在特定的时间间隔内运行,这给了我正确的结果。 但我并没有使用很多for循环,而是使用IF-Else语句尝试了一个for循环,但这并没有给出正确的结果 请问有谁能检查一下,看看出了什么问题吗

  ArrayList dogs = new ArrayList();
        ArrayList cats = new ArrayList();
        ArrayList rabbits = new ArrayList();
        ArrayList guineaPigs = new ArrayList();
        ArrayList birds = new ArrayList();
        ArrayList ferrets = new ArrayList();

        //Before
        for (int i = 0; i < 20; i++)
        {
            dogs.Add(new Animal(240.00, "D-PUP" + i));
        }
        for (int i = 0; i < 15; i++)
        {
            dogs.Add(new Animal(190.00, "D-JUN" + i));
        }
        for (int i = 0; i < 10; i++)
        {
            dogs.Add(new Animal(120.00, "D-ADU" + i));
        }
        for (int i = 0; i < 5; i++)
        {
            dogs.Add(new Animal(60.50, "D-SEN" + i));
        }
        //Before            
        for (int i = 0; i < 25; i++)
        {
            cats.Add(new Animal(220.00, "C-KIT" + i));
        }
        for (int i = 0; i < 30; i++)
        {
            cats.Add(new Animal(180.50, "C-JUN" + i));
        }
        for (int i = 0; i < 15; i++)
        {
            cats.Add(new Animal(120.00, "C-ADU" + i));
        }
        for (int i = 0; i < 10; i++)
        {
            cats.Add(new Animal(50, "C-SEN" + i));
        }
        //Before            
        for (int i = 0; i < 15; i++)
        {
            rabbits.Add(new Animal(120.75, "R-KIT" + i));
        }
        for (int i = 0; i < 15; i++)
        {
            rabbits.Add(new Animal(40.00, "R-ADU" + i));
        }
        //Before 
        for (int i = 0; i < 5; i++)
        {
            guineaPigs.Add(new Animal(15.00, "G-PUP" + i));
        }
        for (int i = 0; i < 10; i++)
        {
            guineaPigs.Add(new Animal(7.50, "G-ADU" + i));
        }
        //Before
        for (int i = 0; i < 2; i++)
        {
            birds.Add(new Animal(90.00, "B-CHI" + i));
        }
        for (int i = 0; i < 5; i++)
        { 
            birds.Add(new Animal(65.00, "B-ADU" + i));
        }           
        //Before
        for (int i = 0; i < 1; i++)
        {
            ferrets.Add(new Animal(150.00, "F-PUP" + i));
        }
        for (int i = 0; i < 3; i++)
        {
            ferrets.Add(new Animal(120.00, "F-ADU" + i));
        }
        for (int i = 0; i < 2; i++)
        {
            ferrets.Add(new Animal(30.50, "F-SEN" + i));
        }
        //After
        int j = 30;
        int i;
        for(i = 0; i < j; i++)
        {
            if(i < 1)
            {
                ferrets.Add(new Animal(150.00, "F-PUP" + i));
            }
            if(i < 2)
            {
                birds.Add(new Animal(90.00, "B-CHI" + i));
                ferrets.Add(new Animal(30.50, "F-SEN" + i));
            }
            if(i < 3)
            {
                ferrets.Add(new Animal(120.00, "F-ADU" + i));
            }
            if(i < 5)
            {
                dogs.Add(new Animal(60.50, "D-SEN" + i));
                guineaPigs.Add(new Animal(15.00, "G-PUP" + i));
                birds.Add(new Animal(65.00, "B-ADU" + i));
            }

            if(i < 10)
            {
                dogs.Add(new Animal(120.00, "D-ADU" + i));
                cats.Add(new Animal(50, "C-SEN" + i));
                guineaPigs.Add(new Animal(7.50, "G-ADU" + i));
            }
            if(i < 15)
            {
                dogs.Add(new Animal(190.00, "D-JUN" + i));
                cats.Add(new Animal(120.00, "C-ADU" + i));
                rabbits.Add(new Animal(120.75, "R-KIT" + i));
                rabbits.Add(new Animal(40.00, "R-ADU" + i));   
            }
            if(i < 20)
            {
                dogs.Add(new Animal(240.00, "D-PUP" + i));
            }
            if(i < 25)
            {
                cats.Add(new Animal(220.00, "C-KIT" + i));   
            }
            if(i < 30)
            {
                cats.Add(new Animal(180.50, "C-JUN" + i));
            }
        }
ArrayList dogs=new ArrayList();
ArrayList猫=新的ArrayList();
ArrayList兔子=新的ArrayList();
ArrayList GuineAppigs=新的ArrayList();
ArrayList birds=新的ArrayList();
ArrayList雪貂=新的ArrayList();
//以前
对于(int i=0;i<20;i++)
{
添加(新动物(240.00,“D-PUP”+i));
}
对于(int i=0;i<15;i++)
{
添加(新动物(190.00,“D-JUN”+i));
}
对于(int i=0;i<10;i++)
{
添加(新动物(120.00,“D-ADU”+i));
}
对于(int i=0;i<5;i++)
{
添加(新动物(60.50,“D-SEN”+i));
}
//以前
对于(int i=0;i<25;i++)
{
添加(新动物(220.00,“C-KIT”+i));
}
对于(int i=0;i<30;i++)
{
添加(新动物(180.50,“C-JUN”+i));
}
对于(int i=0;i<15;i++)
{
添加(新动物(120.00,“C-ADU”+i));
}
对于(int i=0;i<10;i++)
{
添加(新动物(50,“C-SEN”+i));
}
//以前
对于(int i=0;i<15;i++)
{
添加(新动物(120.75,“R-KIT”+i));
}
对于(int i=0;i<15;i++)
{
添加(新动物(40.00,“R-ADU”+i));
}
//以前
对于(int i=0;i<5;i++)
{
几内亚添加(新动物(15.00,“G-PUP”+i));
}
对于(int i=0;i<10;i++)
{
几内亚加入(新动物(7.50,“G-ADU”+i));
}
//以前
对于(int i=0;i<2;i++)
{
添加(新动物(90.00,“B-CHI”+i));
}
对于(int i=0;i<5;i++)
{ 
添加(新动物(65.00,“B-ADU”+i));
}           
//以前
对于(int i=0;i<1;i++)
{
雪貂。添加(新动物(150.00,“F-PUP”+i));
}
对于(int i=0;i<3;i++)
{
雪貂。添加(新动物(120.00,“F-ADU”+i));
}
对于(int i=0;i<2;i++)
{
雪貂。添加(新动物(30.50,“F-SEN”+i));
}
//之后
int j=30;
int i;
对于(i=0;i
这不是编写代码的最佳方式,因为它会让人感到困惑,而且正如您所看到的,它会让事情变得难以理解。理解你需要30只猫“C-JUN”真的很复杂


使用单独的
循环保留您的第一个选项,或更改为
dogs.AddRange(可枚举的范围(0,20)。选择(i=>新动物(240.00,“D-PUP”+i))

否不起作用!。。。顺便说一句,2017年与ArrayList的合作是。。。次优。您可能希望阅读,然后使用
列表
。当您说第二种方法产生“不正确”的结果时,您是指结果的项数错误,还是指结果的项数正确,但“在错误的位置”?抱歉,花了较长的时间。正如预期的那样,这两种方法都创建完全相同的项。区别在于项目的顺序。如果你能接受,那太好了。如果没有,您可能想看看LINQ。并且明确地从
ArrayList
(和
Hashtable
)迁移到泛型和类型安全对应(
List
Dictionary
)。顺便说一句。如果您创建一个
public enum AnimalType{Dog、Cat、Rabbit、guineappig、Bird、Ferret}
,您可以将该类型作为属性提供给
Animal
类。这样,您就不需要为每种类型创建单独的列表,但可以将它们都保存在一个列表中,并且仍然能够区分它们。无法从System.Generic.IEnumerable转换为System.Collection.ICollection确保您使用的是AddRange