LINQ behavior is that LINQ wouldn’t return null when results are empty rather it will return an empty enumerable. We can check this with .Any() method;
if (!YourResult.Any())
This is a LinqPad example;
var lst = new List<int>() { 1, 2, 3 };
var ans = lst.Where( i => i > 3 );
(ans == null).Dump(); // False
(ans.Count() == 0 ).Dump(); // True
Let’s go through another example where I have this string array to search;
{“dog”,”cat”};
in this string;
“This is a string and may or may not contain a word we are looking for like cat”
string input = "This is a string and may or may not contain a word we are looking for like cat";
List<string> search = new List<string>() { "dog", "cat"};
bool found = input.Split(' ').Any(x => search.Contains(x));
It works like this: the string gets split into an array of words. Then Any checks whether there is an x in this array where search.Contains(x).
Enumerable.Any(TSource) Method (IEnumerable(TSource)) (System.Linq)
Reference
What does linq return when the results are empty
Find all items in list which exist in another list using linq

