我们如何将谓词升级为扩展方法的一部分,并在我们的Linq子句中使用它?
我已经定义了一个谓词并能够成功使用它:
Func<BlobsPerContainerModel, bool> isOutgoingContainer = x => x.Container.StartsWith("outgoing-");
var outgoingBlobsContainer = blobsPerContainer.Where(isOutgoingContainer).ToList();
我不想在同一位置定义该谓词,而是将其升级到自己的Extensions
类。
我已将代码放在一个类中
public static class Extensions
{
public static Func<BlobsPerContainerModel, bool> isOutgoingContainer(this BlobsPerContainerModel b) => x => b.Container.StartsWith("outgoing-");
}
但是,当尝试以这种方式使用它时:
var outgoingBlobsContainer = blobsPerContainer.Where(isOutgoingContainer).ToList();
我得到这个:
我们如何将谓词升级为扩展方法的一部分,并在我们的Linq子句中使用它?
这是我使用的模型:
public class BlobsPerContainerModel
{
public string Container { get; set; }
public int Quantity { get; set; }
}
答案 0 :(得分:2)
尝试一下:
var outgoingBlobsContainer = blobsPerContainer.Where((model)
=> model.IsOutgoingContainer()).ToList();