テキストボックスに入力されたキーワードを探すためにLINQを実行しています。各キーワードは「;」で終わります そして、これらのキーの少なくとも 1 つを含む itens を探す必要があります。
このループでこれを達成できると思いました
IEnumerable<ItemFAQ> allResults = null;
foreach (var item in termosPesquisaIsolados)
{
IEnumerable<ItemFAQ> tempResults =
_dbHelpDesk.ItemFAQ
.Where(x => x.DescricaoResposta.Contains(item) || x.TituloTopico.Contains(item))
.ToList()
.Select(x => new ItemFAQ
{
IdPergunta = x.IdPergunta,
TituloTopico = x.TituloTopico,
DescricaoResposta = x.DescricaoResposta.Substring(0, 100)
});
if (allResults != null)
allResults = allResults.Union(tempResults);
else
allResults = tempResults;
}
最初の反復では、tempResult はテストで 3 つの要素を返し、次に allResult に渡されます。これですべて問題ありません。
2 回目の反復では、tempResult は 2 つのオカレンスを返します... コードによると、allResult は AllResult と TempResults の Union を受け取る必要がありますが、何をしても、Union 句を使用すると結果が空のセットになります。
したがって、ユニオンを使用した後、最後に 3 + 2 = 0 になります。
このコードの平和で間違いを確認できますか、またはこのエラーにつながる可能性のあるいくつかの問題を知っていますか?
御時間ありがとうございます。