将类数组存储在C#中的列表中 [英] Store array of classes in a list in C#

查看:77
本文介绍了将类数组存储在C#中的列表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个课程如下:

  class  EUInput 
{
public EUInput()
{
RtID = 0 ;
}

public int RtID {获得; set ; }
}





我想在列表中存储具有不同RtID值的此类。我尝试如下:

 静态  void  Main( string  [] args)
{
EUInput clsEUInput = new EUInput ();

列表< euinput> list = new List< euinput>();

for int i = 0 ; i < 5 ; i ++)
{
clsEUInput.RtID = i;
list.Add(clsEUInput);
}

foreach (EUInput obj 列表)
{
Console.WriteLine(obj.RtID.ToString());
}


Console.ReadLine();
}





我得到的输出为



4

4

4

4

4



但是我需要一个outupt



0

1

2

3

4

解决方案

这是像 Wes Aday 已经指出:



 // EUInput clsEUInput = new EUInput(); 





你必须在for-loop中创建新对象 b>每个新值:



 静态  void  Main( string  [] args)
{
// EUInput clsEUInput = new EUInput();
EUInput clsEUInput;

列表< euinput> list = new List< euinput>();

for int i = 0 ; i < 5 ; i ++)
{
// 每次都需要创建新对象
clsEUInput = new EUInput();
clsEUInput.RtID = i;
list.Add(clsEUInput);
}

foreach (EUInput obj 列表)
{
Console.WriteLine(obj.RtID.ToString());
}


Console.ReadLine();
}
< / euinput > < / euinput > ;


I have a class as below:

class EUInput
{
    public EUInput()
    {
        RtID = 0;
    }

    public int RtID { get; set; }
}



I want to store this class with different RtID values in a list. I tried as below:

static void Main(string[] args)
{
    EUInput clsEUInput = new EUInput();

    List<euinput> list = new List<euinput>();

    for (int i = 0; i < 5; i++)
    {
        clsEUInput.RtID = i;
        list.Add(clsEUInput);
    }

    foreach (EUInput obj in list)
    {
        Console.WriteLine(obj.RtID.ToString());
    }


    Console.ReadLine();
}



I am getting an output as

4
4
4
4
4

But I need an outupt as

0
1
2
3
4

解决方案

This is the error like Wes Aday already pointed:

//EUInput clsEUInput = new EUInput();



You have to create the new objects in the for-loop for each new value:

        static void Main(string[] args)
        {
            //EUInput clsEUInput = new EUInput();
            EUInput clsEUInput;
 
            List<euinput> list = new List<euinput>();
           
            for (int i = 0; i < 5; i++)
            {
                // you need to create new object every time
                clsEUInput = new EUInput();
                clsEUInput.RtID = i;
                list.Add(clsEUInput);                
            }
 
            foreach (EUInput obj in list)
            {
                Console.WriteLine(obj.RtID.ToString());                
            }
 
          
            Console.ReadLine();
        }
</euinput></euinput>


这篇关于将类数组存储在C#中的列表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆