2013-01-10 50 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; 
    }