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
Add to favorites