데이터 목록을 전달할 클래스가 있습니다. 제가IQueryable을 매개 변수로 전달
- 창에
- 필터 I 매개 변수로 가지며, 제 열거 된 목록으로 필터링 된 결과를 표시하는 조건으로 데이터 전체 데이터 세트의 공급 업체의 목록이 클래스를 원한다.
내가 달성하고 싶은 의사 코드로 IQueryable
조건을 추가했습니다. 이것이 가능한가?
internal class Problem
{
public IEnumerable<Vendor> Vendors { get; set; }
public IEnumerable<Class1> ReturnedData { get; set; }
public Problem(List<Class1> data, IQueryable condition)
{
Vendors = data.SelectMany(d => d.Vendors).Select(v => v.VendorName).Distinct().Select(v => new Vendor {VendorName = v}).ToList();
ReturnedData = data.AsQueryable().Where(condition);
}
}
internal class Class1
{
public IEnumerable<Vendor> Vendors { get; set; }
// lots of other stuff
}
internal class Vendor
{
public object VendorName { get; set; }
}
매개 변수로 IQueryable을 사용합니다. 두 x 째 매개 변수는 술어입니다. – sturcotte06
@ sturcotte06, 기술적으로는 올바르지 만 IQueryable의 확장 메서드이기 때문입니다. 이것은 거의 직접적으로 그리고 거의 항상 확장 방법으로 호출되는 경우는 거의 없으며, 이는 OP가 호출하는 방법과 정확히 같습니다. 결과적으로 올바른 오버로드가 예상하는 매개 변수는 술어가되며 IQueryable을 전달하는 유일한 시간은 직접 호출 할 때입니다. –