2010-06-25 3 views
0

linq 전치사를 linq 표현식을 .Select() .Group() 등의 일반적인 C# 문으로 "전처리"할 수있는 것이 유용 할 것이라고 생각합니다. 이것은 장면의 배경을 학습하는 데 유용 할 것입니다. linq 학습, linq 학습 또는 복잡한 linq 표현식 디버깅. 그러한 도구 또는 시설이 있습니까? 나는 이것을 LinqPad에서 발견 할 수 없었다.Linq 프리 프로세서?

답변

3

LINQPad에서이 기능을 사용하려면 쿼리를 실행 한 다음 결과 창에서 람다 단추를 클릭하십시오. 이 방법은 IQueryable 기반 쿼리에서만 작동합니다. 이 지역 쿼리, 당신은() .AsQueryable를 호출해야 함을 의미합니다 : 유창 구문으로 쿼리 표현식에서

from n in new[] { "Tom", "Dick", "Harry" }.AsQueryable() 
where n.Contains ("a") 
select n 

번역 여러 발전기를 쿼리 특히 재미있다, 조인 또는하자 문. 예를 들어 :

System.String[] 
    .SelectMany (
     fullName => fullName.Split (new Char[0]), 
     (fullName, name) => 
     new 
     { 
      fullName = fullName, 
      name = name 
     } 
    ) 
    .OrderBy (temp0 => temp0.fullName) 
    .ThenBy (temp0 => temp0.name) 
    .Select (temp0 => ((temp0.name + " came from ") + temp0.fullName)) 
:

var fullNames = new[] { "Anne Williams", "John Fred Smith", "Sue Green" }.AsQueryable(); 

IEnumerable<string> query = 
    from fullName in fullNames 
    from name in fullName.Split() 
    orderby fullName, name 
    select name + " came from " + fullName; 

query.Dump(); 

이로 변환

1

Resharper는 LINQ 표현식을 메서드 체인으로 변환 할 수 있습니다.

1

Reflector (특히 불만 사항 2 참조)을 통해 Linq 표현식을 실행 해 볼 수도 있습니다.

관련 문제