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 に答える