c# - 将 IQueryable 作为参数传递

标签 c# .net iqueryable

我有一个类,我想将数据列表传递给该类。我想要这门课

  1. 返回整个数据集中的供应商列表
  2. 按我作为参数的条件过滤数据,并将过滤后的结果作为第二个可枚举列表返回。

我已经添加了 IQueryable 条件作为我想要实现的伪代码。这可能吗?

internal class Problem
{
    public IEnumerable<Vendor> Vendors { get; set; }
    public IEnumerable<Class1> ReturnedData { get; set; }

    public Problem(List<Class1> data, IQueryable condition)
    {
        Vendors = data.SelectMany(d => d.Vendors).Select(v => v.VendorName).Distinct().Select(v => new Vendor {VendorName =  v}).ToList();

        ReturnedData = data.AsQueryable().Where(condition);
    }
}

internal class Class1
{
    public IEnumerable<Vendor> Vendors { get; set; }
    // lots of other stuff
}

internal class Vendor
{
    public object VendorName { get; set; }
}

最佳答案

我会略有不同。

首先安装nuget包System.Linq.Dynamic

Install-Package System.Linq.Dynamic

在那之后, `IQueryable 的 Where 函数将支持字符串作为参数。所以你可以这样做:

protected static IQueryable<T> ApplyGridFilter<T>(IQueryable<T> query)
{
            var qText = "id == 1";

            query = query.Where(qText);
            return query;
}

好处是您可以轻松地在客户端构建 where 条件,而无需创建 Func<Class1, bool>>

关于c# - 将 IQueryable 作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38879017/

相关文章:

c# - 是否可以将 C# 双列表中的所有元素划分为该双列表元素总和(这使得总计 = 1)

C#:英语语法规则引擎?

c# - Python 中 C# 的 GetBytes() 等价于什么?

c# - 独立开发人员 (.NET) 的最佳持续集成设置

c# - 你如何用 Rhino Mocks stub IQueryable<T>.Where(Func<T, bool>)?

c# - naudio 库中的 SignalGenerator 类 - 持续时间播放

.net - 如何在 VBA 中使用 .NET 类?语法帮助!

c# - 多步 OLE DB 操作产生错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作

asp.net-mvc - 当 Web API 返回 IQueryable 时 EF 引用丢失

c# - 为什么分页的 LINQ IQueryable 性能如此差?