linq - 如何对动态选择的列执行不同操作?

标签 linq dynamic-linq

我正在使用动态 linq 并动态选择列。我需要对此做一个独特的。我怎么能这样做?

var qry = tbl.AsEnumerable().AsQueryable()
             .Select("new(it[\"" + this.UniqueName + "\"]
             .ToString() as " + this.UniqueName + ")");

谢谢。

最佳答案

而不是使用

as " + this.UniqueName + "

作为 someFixedColumnName

并使用普通的 Linq 在其上运行你的 Distinct() 子句。


或者,您可以尝试 this extension method:

public static IQueryable DynamicDistinct(this IQueryable source)
{
    if (source == null) throw new ArgumentNullException("source");
    return source.Provider.CreateQuery(
        Expression.Call(
            typeof(Queryable), "Distinct",
            new Type[] { source.ElementType },
            source.Expression));
}

关于linq - 如何对动态选择的列执行不同操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5655368/

相关文章:

c# - 构建一组可以对任何 linq 表进行操作的通用方法

c# - 如何从 C# 中的字符串创建基于动态 lambda 的 Linq 表达式?

c# - 这两种改组 IEnumerable 的算法之间是否存在性能差异?

c# - 如何在 .NET Core 3.0 Entity Framework 中执行组加入?

c# - Sprache 中的文本查询解析

c# - Dynamic Linq - 连接具有一对多关系的表

c# - 使用 Dynamic Linq 库运行总和

c# - LINQ 模型的问题 - 无法将 NULL 分配给可空 bool 值!

c# - 为什么我们在 LINQ 中需要 Single()?

c# - 如何使用 LINQ 删除符合特定条件的列表子集?