私のLogクラスには2つのプロパティがあります。
List<LogDetails>
string Title
そして、私のLogDetailsクラスには2つのプロパティがあります。
string Message
LogStatus LogStatus //enum
このオブジェクトの存続期間中、後の段階でログに記録するために保存される多くのメッセージを受信します。LogStatus列挙型にはいくつかの状態がありますが、単に「進行中」、「ファイルが見つかりませんエラー」、「成功」、または「失敗」のいずれかです。
失敗したものだけを一致させるために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();
私のfilteredLogsは、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()メソッドを呼び出すことができないように見えるため、これも機能しません。
編集
この問題を克服する方法について誰か提案がありますか?私の目標は、失敗したものだけをリストするリストを作成することです。