2012-08-02 3 views
2

누구든지 linq을 SQL에 사용하기 위해 다음 C# 코드를 변환하는 방법을 알려주십시오. SQL에 linq를 사용하여, 그것은 더 빨리 실행될 것인가 아니면 여전히 아래와 같을까요? 실행이 속도를하지 않을 것을,하지만,linq foreach 루프 내부의 for 루프

allItems = all.SelectMany(a => a.Items) 
       .Where(a => a.Item.TruckItemID.Equals(CarItem.CarItemID)); 

유의 사항 :

foreach (var a in all) 
    { 
     for (int i = 0; i < a.Items.Length; i++) 
     { 
      if (a.Items[i].Item.TruckItemID.Equals(CarItem.CarItemID)) 
       { 
        allItems = a.Items[i]; 
       } 
     } 
    } 
+2

resharper와 같은 도구는 종종 루프를 linq 변환으로 제안하므로 좋은 학습 방법이 될 수 있습니다. http://www.jetbrains.com/resharper/ – peacemaker

답변

5

당신이 뭔가를 원하는 것 같은데. LINQ는 쿼리를 거의 동일한 코드로 확장합니다.

+0

감사합니다. 나는 항상 린크가 더 빨리 달릴 것이라고 생각했다. 지식/미래 참고 문헌에 대해 잘 알고 있습니다. – Calvin

1

Linq 2 Sql은 LINQ를 SQL 명령으로 변환하고 데이터베이스에서 실행하는 데이터베이스 액세스 기술입니다. 데이터를 메모리 내 컬렉션으로 반환합니다. for 루프는 매우 원시적이므로 적절하게 사용하면 속도가 좋아지는 경향이 있습니다. for-loops 중첩을 시작하면 데이터가 O (n^2) 증가함에 따라 연산이 지수 적으로 느려집니다.