これについてstackoverflowを調べましたが、探している答えが見つかりません。本当に簡単です。基本的に、IEnumerable 変数が null かどうかを確認する方法を知りたいのですが、if ステートメントは私を笑って変数を通過させます。
シナリオは次のとおりです。データベースから取得したデータのリストがあります。これは、ユーザー入力に基づいてコンテンツをフィルター処理するフィルター関数です (したがって、[HttpPost] はありません)。最初にチェックするのは、レビュー データベースのレビュー リストです。これが空の場合は、レビュー データベースのユーザー リストをチェックします。
コードは次のとおりです。
var review = from m in _db.Reviews
select m;
if (!String.IsNullOrEmpty(searchString))
{
review = review.Where(s => s.review.Contains(searchString));
if (review != null && review.Any())
{
return View(review);
}
else
{
review = review.Where(s => s.user.Contains(searchString));
return View(review);
}
私はそれを少しいじりました. if ステートメントは、それがnullであるかどうかをチェックするために使用され、次に.any()、次に!= null、そして今では両方とも、変数は通り過ぎて笑いながら通り過ぎます。デバッガーを実行し、いくつかの場所に配置しました。結果が返されないことがわかっている値を入力すると、デバッガーはレビュー値を次のように表示します。
「IEnumerable では結果が得られませんでした」
これを防ぐための哀れな試みで、私はその文を if ステートメントに入れさえしました。変数はとても笑いました。スピーカーから聞こえることを誓います。
とにかく、これを行うための最良の方法を手に入れることができれば、それはなぜですか. クッキーがあります。