2013-01-10 79 views
1

我是Linq新手,正在研究與其他人相反的代碼。他在下面寫下這段代碼。我理解的代碼,但任何人都可以告訴我,如果我可以在幾乎相同的代碼量將此Linq代碼轉換爲常規/非linq代碼

public static AType MyFunction() 
{ 
      return new AType 
      { 
       PropertyOfAType = SomeIEnumerable.Select(r => new BType 
       { 
        Property1OfBType = r.GetData(5), 
        Property2OfBType = r.GetData(6) 

       }).ToArray() 
      }; 

} 
+0

這個代碼不LINQ轉換隻需使用'Array.ConvertAll()'。 – SLaks

+0

對不起,我沒有看到Array.ConvertAll()如何達到預期的效果。我不是將一種類型的數組轉換爲另一種。你能寫下代碼嗎? – TkNeo

+0

'Array.ConvertAll'與'.Select()'相同,只不過需要將輸入轉換爲數組。 – SLaks

回答

1
public static AType MyFunction() 
    { 
     AType aType = new AType(); 
     List<BType> bTypes = new List<BType>(); 
     foreach (var r in SomeIEnumerable) 
     { 
      bTypes.Add(new BType 
      { 
       Property1OfBType = r.GetData(5), 
       Property2OfBType = r.GetData(6) 
      }); 
     } 
     aType.PropertyOfAType = bTypes.ToArray(); 
     return aType; 
    }