방어 프로그래밍을 좋아합니다. 예외 던지기는 싫지만이 질문은 내 질문의 대상이 아닙니다. IOrderedEnumerable 및 방어 프로그래밍
는 I 열 이름이 유효하지 않은 경우,이 방법은 지정된 열거 반환 LINQ의 확장은 방어 프로그램와 열 이름 public static IEnumerable<T> OrderBy<T>(this IEnumerable<T> list, string sortExpression)
에 의해 명령을 수행 할 수있는 장치.
이제 ThenBy를 사용하여의 보조 정렬 을 수행해야합니다.
public static IOrderedEnumerable<T> OrderBy<T>(this IEnumerable<T> list, string sortExpression)
가 나는 IOrderedEnumerable를 반환해야합니다 그래서 나는 그 서명이 필요합니다. 내 문제는 내 방어 프로그래밍 기능을 유지하는 것입니다 : 주어진 세트를 반환해야합니다 열 이름이 잘못되었습니다.
깨끗한 방법이 있습니까? 내가 생각하고 모든 트릭의 일종 :
- 를 사용하여 반사 속성이-정렬 허용
- 가 위험하다 내 자신의 IOrderedEnumerable, 구현되지 않을 수 있기 때문에 위험하다 처음 발견 특성에 의해 주문 IQueryable 또는 IList에서 순서를 수행했기 때문에 다른 LinQ 작업도 수행하므로 부작용이 두려운 것입니다.
조언이 있습니까? 감사합니다.
어떻게 그것을 표시, 특정 계층에서 그것을 잡기, 예외를 던지는 것보다 더 방어에 대한 질문을 받았다 방법에 대한 질문을 받았다 무엇과 관계없는 출력을 반환 프로그램의 유형에 적합한 방식으로, 그리고 버그가 다른 코드에 의해 소개되지 않았다는 확신을 가지면 enumerables 주문 enumerables를 주문하는 방법을 가정합니다. 이것은 방어 프로그래밍과 정반대 인 것처럼 보입니다. –