非常に基本的な質問ですが、私の問題を解決するためには見えません。 HTML形式の文字列を含むデータベースを照会していますが、質問したいテキストのみですが、RegexでHTMLタグを削除して、それに含まれていますが、次のエラーメッセージで失敗します。 C#Asp.netは、HTMLタグの例外なしでHTML形式の文字列をクエリします。
queryString = queryString.Replace("\"", string.Empty);
flagedIssues =
flagedIssues.Where(
i =>
Regex.Replace(i.Description, "<.*?>", string.Empty).Contains(queryString) ||
i.IssueTagses.Any(t => t.Tag.Contains(queryString)) ||
i.Category.Description.Contains(queryString));
}
どのように私はこのエラーを解決し、私の説明からテキストを得ることができますか?
UPDATE
のでこの怒鳴るを反映するが、私の機能はLINQ Mabye明らかにこの波平によって認識されていないと言って、新たなエラーメッセージを取得するためのコードを追加提案として、私は、HTML敏捷性パックを試してみました私の最初の質問ではなく、私はLINQは、単純なアプローチは、以下に正規表現を使用することでしょうRegex.Replaceや私の方法
if (!string.IsNullOrWhiteSpace(queryString))
{
queryString = queryString.Replace("\"", string.Empty);
flagedIssues =
flagedIssues.Where(
i =>
CleanHtml(i.Description).Contains(queryString) ||
i.IssueTagses.Any(t => t.Tag.Contains(queryString)) ||
i.Category.Description.Contains(queryString));
}
private string CleanHtml(string dirtyString)
{
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(dirtyString);
return doc.DocumentNode.InnerText;
}
簡単な質問return文でこれを実装しても、Where句を使用しても、私が望むコンテキストに合わせることができます。 – Harry
最初にWhere句を使用する理由は何ですか?返される文は、Enumerableオブジェクト型ではない文字列です。したがって、Where節は使用できません。 –