2011-06-20 49 views
0

我有以下课程。 Parent类的内部是ParentDetail的列表。现在我需要为ParentDetail类添加一个新字段。该字段被称为Id。我需要的是一个主类中的方法,它将遍历ParentDetails并使用从1开始的数字填充Id字段。如何将序列ID添加到另一个类的列表中的类?

任何人都可以想到一个简单的方法来做到这一点?我不确定我如何遍历列表。

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

其实,@罗伊 - 那需要是'我+ 1':) –

+0

“从1开始”......你是对的! :-) –

1

可以做直for(int i; i < Count; i++)环路由Roy Dictus(+1从我)建议 - 我只是夹紧这个那里作为替代,这情况是非常有用的,你不要't知道可枚举的计数。

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

在你的情况下,你这样做;因为你有一个IList,但是。

相关问题