将 linq 转换为非 linq

Posted

技术标签:

【中文标题】将 linq 转换为非 linq【英文标题】:Converting linq to non linq 【发布时间】:2020-02-19 09:07:01 【问题描述】:

您好,我一直在 Visual Studio 2008 .net 2 上使用 net 2,看来我的 linq 代码在这里不起作用。我在互联网上进行了一些搜索,但我没有看到从 linq 到非 linq。 这是我试图转换的代码。

var listWithoutCol = fmas.Select(x => new x.NcrbNo, x.LotInfo, x.FailureMode, x.JobOwner, x.Status, x.Originator, x.DateCreated ).ToList();

变量listWithoutCol将用于导出到excel。

希望你明白我的意思。

【问题讨论】:

只需遍历 fmas 并自己创建模型并将它们添加到列表 listWithoutCol? C#2 也不支持匿名类型。 var 也不是,所以这并不像使用 foreach 那样简单。 是时候升级了,别再乱用不受支持的软件和框架了。 @Adriani6 推荐并实现它是我们的工作! @MichaelRandall 是的,是的,它不应该是。我们,开发人员从另一个角度看待业务案例,而不是非技术“项目经理”,他们需要有理由花钱购买当前“有效”的东西。大约 2 年以来,我一直试图将我们的“过时”产品转移到更新的平台上,而且......它没有发生,因为它“有效”。但这只是一个原因,显然还有许多其他问题,例如过时的环境(船只对此不利)、第三方集成等。我相信您已经知道了。咆哮:) 【参考方案1】:

建议您更新到支持 linq 的较新版本。 但是你可以创建一个新类:

class Job 
    public int NcrbNo; // use proper types.
    public int LotInfo;
    public int FailureMode;
    public int JobOwner;
    public int Status;
    public int Originator;
    public DateTime DateCreated;

然后只需使用 foreach 进行迭代。

List<Job> listWithoutCol = new List<Job>();
foreach (FmasType element in fmas)  // Replace FmasType with the type it is.
    Job job = new Job();
    job.NcrbNo = element.NcrbNo;
    job.LotInfo = element.Lotinfo;
    job.FailureMode = element.FailureMode;
    job.JobOwner = element.JobOwner;
    //..etc..   

    listWithoutCol.add(element);

【讨论】:

fmas 类型是什么?

以上是关于将 linq 转换为非 linq的主要内容,如果未能解决你的问题,请参考以下文章

将 SQL 转换为 Linq 查询

LINQ to nHibernate - 将 SQL“NOT IN”表达式转换为 LINQ

使用 Linq 将所有字段转换为大写

如何使用 SUM 计算将 SQL 转换为 Linq

如何将以下 SQL 语句转换为 LINQ 方法语法

如何将此 SQL 内部联接查询转换为 LINQ 语法?