我有一个我创建的测试类,我希望能够创建它的多个实例。然后我想使用foreach迭代每个实例。我看过几个显示IEnumerate
的论坛,但是他们让我感到很困惑。任何人都可以给我一个newbe的例子。
我的课程:
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; }
}
}
谢谢
答案 0 :(得分:2)
您是否需要枚举您的类型的多个实例,或创建一个本身可枚举的类型?
前者很简单:将实例添加到集合中,例如实现List<T>()
的{{1}}。
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 );
}
语句时,compiler helps out and automatically generates与foreach
(例如列表)交互所需的代码。换句话说,您不需要显式编写任何其他代码来迭代这些项。
后者有点复杂,需要自己实施IEnumerable
。根据样本数据和问题,我认为这不是您所寻求的。
答案 1 :(得分:1)
您的类只是一个“数据块” - 您需要将类的多个实例存储到某种集合类中,并在集合中使用foreach。
答案 2 :(得分: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 );
}