Linq 语法问题 - List.Find(谓词<T>匹配)



我试图在其中添加一些逻辑。但我不确定如何添加第二个条件...
例如:

        foreach (FolderAssetInfo e in folderAssetsList)
        {
            var foundAsset = databaseAssetsList.Find(a => a.AssetFullName == e.AssetFullName);
            //I want to add an AND logic inside the parenthesis such as:
            //a => a.AssetFullName == e.AssetFullName && a.AssetFirstName == e.AssetFirstName)
            if (foundAsset != null)
            {
                Console.WriteLine(Found it!);
            }
        }

我该怎么做?

你的语法很完美:

var foundAsset = databaseAssetsList.Find(a => a.AssetFullName == e.AssetFullName && a.AssetFirstName == e.AssetFirstName);

基本上,Predicate<T>只是返回布尔值的语法。 您在注释 ( a.AssetFullName == e.AssetFullName && a.AssetFirstName == e.AssetFirstName ) 中的语法将返回一个布尔值,如所写,因此它适用于谓词。


您确实遇到语法错误的一个地方是您对Console.WriteLine的调用 - 这将要求您添加引号:

Console.WriteLine("Found it!"); // Quotes are required here!

最新更新