당신은 방법 내부 IQueryable<T>
를 구축하고 다음 방법은 일반적인 만들 수 있습니다에게 도움이됩니다. 이렇게하면 IQueryable<T>
을 직접 반환 할 수 있고 C# 컴파일러는 형식 추론을 사용하여 컴파일시에 T
이 무엇인지 확인할 수 있습니다. Linq 연산자는 Extension 메서드로 구현되는 경우를 제외하고는 대부분 구현됩니다.
예를 들어, 제거하는 방법을 고려하는 것이 유형의 기본입니다 그 목록에있는 : 당신이 형식 유추를 알아낼 수 있기 때문에 당신이 <T>
을 남길 수 있습니다 C#에서이 전화를 지금
public static IQueryable<T> FilterDefaults<T>(IQueryable<T> theSet)
{
IQueryable<T> query =
from t in theSet
where t != default(T)
select t;
return query;
}
컴파일시 T
은 여전히 강력한 형식의 수 :
string[] myStrs = { "ABC", null, "", "123", null, "XYZ" };
var theFilteredStrs = FilterDefaults(myStrs);
// should represent the sequence: "ABC", "", "123", "XYZ"
// note null is missing because default(string) is null
int[] myNums = { -1, 0, 3, 0, 42 };
var theFilteredNums = FilterDefaults(myNums);
// should represent the sequence: -1, 3, 42
// note 0 is missing because default(int) is 0
이것은 기본적인 유형을 사용하는 간단한 예제이지만 아이디어는 힘있는 (LINQ - 투 - SQL 포함) LINQ 사용에 대한 동일하게 작동 LINQ. 궁극적으로 LINQ-to-SQL을 사용할 것인지 또는 LINQ-to-Objects 일지는 신경 쓰지 않습니다.