c# - 泛型方法和谓词的问题

标签 c# linq

我目前有这个通用方法:

    public virtual T Get(Expression<Func<T, bool>> predicate)
    {
        return this.Query.Where(predicate).FirstOrDefault();
    }

下面是我如何调用该方法的示例:

ST = testTable.Get( u => u.PartitionKey == pKey & u.RowKey == rKey );

我真的不太了解泛型,我需要做的是有一个方法将 partitionKey 和 rowKey 作为参数并执行 Get。像这样:

ST = testTable.Get(pkey,rkey);

有没有人知道我该怎么做?

最佳答案

您需要创建一个接受这些参数的函数,并使用使用这些参数的 lambda 表达式调用第一个函数。

public T Get(pkey,rkey)
{
    return Get(u => u.PartitionKey == pKey & u.RowKey == rKey);
}

如果 T 不限于继承具有这些属性的类型,则您需要创建一个扩展方法,以使用具有这些属性的类型参数扩展您的类。

关于c# - 泛型方法和谓词的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6733864/

相关文章:

c# - LINQ 选择不同的 c#

c# - 如何表示与 Entity Framework 的一对多关系?

vb.net - 如何在 VB.NET 中使用 "Into"LINQ 表达式?

c# - 通过 LINQ 更改此循环?

c# - 有没有办法记住或具体化 IEnumerable?

c# - 通过 REST API 将测试结果发布到 TFS 2018 测试用例

C# 动态设计时属性

c# - LINQ:如何在获取父类型的子集合时获取父类型的属性

c# - 使用 LINQ 按值过滤字典时遇到麻烦

c# - 使用 C# Lambda 分割字符串和搜索值