2011-06-20 25 views
0

私は以下のクラスを持っています。 Parentクラスの内部にはParentDetailのListがあります。今度は、ParentDetailクラスに新しいフィールドを追加する必要があります。フィールドはIdと呼ばれます。私が必要とするのは、ParentDetailsを繰り返し実行し、IDフィールドに1から始まる番号を設定するメインクラスのメソッドです。別のクラスのリスト内のクラスにシーケンスIDを追加するにはどうすればよいですか?

これを行う簡単な方法は誰も想像できますか?私はリストをどのように反復できるかわかりません。ロイDictus(私から+1)によって示唆されているように

public class Parent { 
     public IList<ParentDetail> ParentDetails { 
      get { return _ParentDetails; } 
     } 
     private List<ParentDetail> _ParentDetails = new List<ParentDetail>(); 
     public Parent() { 
      this._ParentDetails = new List<ParentDetail>(); 
     } 
    } 

    public class ParentDetail { 
     public int Id { get; set; } <<<<<<<< new field 
    } 

} 

答えて

1
for(int i = 0; i < _ParentDetails.Count; i++) 
{ 
    _ParentDetails[i].Id = i + 1; 
} 
+0

実際には、@Roy - それは 'i + 1'である必要があります:) –

+0

" 1で始まる "...そうです! :-) –

1

はストレートfor(int i; i < Count; i++)ループを行うことができます - 私はちょうどあなたドン状況で非常に有用である、代替として、そこにこれをチャッキングしています'tは、列挙可能な数を知っています。

foreach(var detail in _ParentDetails. 
    Select((d, i) => new { Item = d, Index = i + 1}) 
{ 
    detail.Item.Id = detail.Index; 
} 

あなたのケースでは、しかし、あなたはIListを持っています。

関連する問題