Linq语法问题 - List.Find(Predicate <t>匹配)</t>

时间:2012-06-19 16:54:33

标签: linq list predicate

我想在此添加一些逻辑。但我不确定如何添加第二个条件......
例如:

        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!);
            }
        }

我该怎么做?

1 个答案:

答案 0 :(得分:2)

你的语法很完美:

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!