none
请教一个foreach循环的写法 RRS feed

  • 问题

  • c#入门经典有这样一段代码

    public class Cards:CollectionBase,ICloneable

    {

      public object Clone()

    {

       Cards newCards=new Cards();

       foreach (Card sourceCard in List)//请问此处为何写List而不写newCards,还是List默认存储了集合的项呢,请高人指教

      {

       newCards.Add(sourceCard.Clone()as Card);

       }

       return newCards;

     }

     

    }

    2010年9月7日 13:38

答案

  • 你好
    請問在這裡的List 是不是一個Variable?
    ForEach 的用法是
    把在Array/List中的 的Item 一個一個地找出來
    前面用的Card 是這個Item 的類型

    而sourceCard是用來暫存這個Item 的Variable

    其實和ForLoop 差不多的
    E.G.

    for(int i =0; i<List.Length;i++){
        Card sourceCard = (Card) List[i];

    newCards.Add(sourceCard.Clone()as Card);
    }

    Please correct me if my concept is wrong
    Chi
    • 已标记为答案 乔峰 2010年9月8日 11:37
    2010年9月7日 20:27
    版主

全部回复

  • 你好
    請問在這裡的List 是不是一個Variable?
    ForEach 的用法是
    把在Array/List中的 的Item 一個一個地找出來
    前面用的Card 是這個Item 的類型

    而sourceCard是用來暫存這個Item 的Variable

    其實和ForLoop 差不多的
    E.G.

    for(int i =0; i<List.Length;i++){
        Card sourceCard = (Card) List[i];

    newCards.Add(sourceCard.Clone()as Card);
    }

    Please correct me if my concept is wrong
    Chi
    • 已标记为答案 乔峰 2010年9月8日 11:37
    2010年9月7日 20:27
    版主
  • 我更觉得你贴出的是一段伪代码而不是代码。楼上讲解很清楚了,若有疑问,请贴出相关上下文或提供更详细信息。至于你的问题,“此处为何写List而不写newCards”,这段伪代码所作的工作就是使用一个List(在这里就是List)来对newCards进行赋值,这里的List和newCards根本就是两个不同的对象。
    2010年9月8日 0:28
  • 说实话书里边就是一段伪代码,所以才难理解,不过,已经能给我很好的解释了,忒别是chiyau的回答

    2010年9月8日 11:37