0
My Log 클래스에는 2 개의 속성이 있습니다. 이 수명을 객체 동안Linq로 필터링하는 방법
string Message
LogStatus LogStatus //enum
그것은 나중 단계에서 로그온에 저장되어있는 많은 메시지를 수신 :
List<LogDetails>
string Title
그리고 내 LogDetails 클래스는 두 속성이 있습니다. LogStatus Enum에는 몇 가지 상태가 있지만 단순히 "진행 중", "파일을 찾을 수 없음 오류", "성공"또는 "실패"중 하나입니다.
저는 Linq를 사용하여 실패한 항목 만 일치 시키려하지만 새로운 유형을 구축 할 수 없습니다.
List<Log> filteredLogs = (from a in logs
from b in a.LogDetailsList
where b.Status == LogDetails.LogStatus.Failed
select new Log()
{
Title = a.Title,
LogDetailsList = a.LogDetailsList
}).Distinct().ToList();
내 필터링 된 로그는 where 절이 작동하지 않은 것처럼 전체 목록을 나에게 반환합니다.
내가List<Log> filteredLogs = (from a in logs
from b in a.LogDetailsList
where b.Status == LogDetails.LogStatus.Failed
select new Log()
{
Title = a.Title,
LogDetailsList = new LogDetails() { Message = b.Message, Status = b.Status }
}).Distinct().ToList();
이 작동하지 않는 시도 중 하나는 내가 LINQ 쿼리 내에서 ToList() 메소드를 호출 할 수 없습니다 나타나는.
편집
어느 한이 문제를 해결하는 방법에 대한 제안 사항이 있습니까? 내 목표는 실패한 목록 만 나열하는 목록을 만드는 것입니다.
너무 쉽게 보이게해야 했습니까? :) 나는 어떤 것을 사용하지 않았기 때문에 연구하기 전에. – Dave
@DaveRook : 위 쿼리는 'LogStatus'가'LogStatus.Failed' 인 하나 또는 여러 개의 로그 세부 정보가있는 로그 만 다시 검색합니다. 모든 세부 사항이 대신 실패한 로그를 찾으십니까? –
예. 나는 실패한 사람들에게만, 다른 어떤 것에는 미치지 않습니다. – Dave