检查值是否已在list属性中

use*_*082 1 c# list

下面我试图看看文本是否已经包含在列表中.代码总是进入if语句.为什么?

if(MyGlobals.ListOfItemsToControl.FindAll(x => x.sItemName == info.FullName ) != null)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

Rap*_*aus 7

使用Any而不是FindAll

if(MyGlobals.ListOfItemsToControl.Any(x => x.sItemName == info.FullName )) 
Run Code Online (Sandbox Code Playgroud)

FindAll 如果找不到值,则不返回null,它返回一个空集合.

所以你可以做(​​但不要)

 if(MyGlobals.ListOfItemsToControl.FindAll(x => x.sItemName == info.FullName ).Any())
Run Code Online (Sandbox Code Playgroud)