0

我有一个我创建的测试类,我希望能够创建它的多个实例。然后我想使用 foreach 遍历每个实例。我看过几个论坛,IEnumerate但作为一个非常新的人,他们让我感到困惑。谁能给我一个新的例子。

我的课:

using System;
using System.Collections;
using System.Linq;
using System.Text

namespace Test3
{
  class Class1
  {
    public string   Name    { get; set; }
    public string   Address { get; set; }
    public string   City    { get; set; }
    public string   State   { get; set; }
    public string   Zip     { get; set; }  
  }
} 

谢谢

4

3 回答 3

2

您是否需要枚举类型的多个实例,或者创建一个本身可枚举的类型?

前者很简单:将实例添加到集合中,例如List<T>()which implement IEnumerable<T>

// instantiate a few instances of Class1
var c1 = new Class1 { Name = "Foo", Address = "Bar" };
var c2 = new Class1 { Name = "Baz", Address = "Boz" };

// instantiate a collection
var list = new System.Collections.Generic.List<Class1>();

// add the instances
list.Add( c1 );
list.Add( c2 );

// use foreach to access each item in the collection
foreach( var item in list ){
   System.Diagnostics.Debug.WriteLine( item.Name );
}

当您使用foreach语句时,编译器会提供帮助并自动生成与该语句交互所需的代码IEnumerable(例如列表)。换句话说,您不需要显式地编写任何额外的代码来遍历这些项目。

后者有点复杂,需要IEnumerable<T>自己实现。根据样本数据和问题,我认为这不是您想要的。

于 2013-03-26T01:11:21.120 回答
1

你的类只是一个“数据块”——你需要将你的类的多个实例存储到某种集合类中,并在集合上使用 foreach。

于 2013-03-26T01:10:23.813 回答
0
// Create multiple instances in an array

Class1[] instances = new Class1[100];
for(int i=0;i<instances.Length;i++) instances[i] = new Class1();

// Use foreach to iterate through each instance
foreach(Class1 instance in instances) {

    DoSomething( instance );
}
于 2013-03-26T01:10:46.603 回答