所有“for”循环都可以替换为 LINQ 语句吗?

2024-02-15

是否可以将以下“foreach”编写为 LINQ 语句,我想更普遍的问题是否可以将任何 for 循环替换为 LINQ 语句。

我对任何潜在的性能成本不感兴趣,只对在传统命令式代码中使用声明性方法的潜力感兴趣。

    private static string SomeMethod()
    {
        if (ListOfResources .Count == 0)
            return string.Empty;

        var sb = new StringBuilder();
        foreach (var resource in ListOfResources )
        {
            if (sb.Length != 0)
                sb.Append(", ");

            sb.Append(resource.Id);
        }

        return sb.ToString();
    }

Cheers

AWC


当然。哎呀,你可以替换算术使用 LINQ 查询 https://web.archive.org/web/20091211070633/http://blogs.msdn.com/ericlippert/archive/2009/12/07/query-transformations-are-syntactic.aspx。但你不应该。

查询表达式的目的是代表一个查询操作。 “for”循环的目的是迭代特定语句,以便多次执行其副作用。这些通常非常不同。我鼓励用更清晰地查询数据的更高级别的构造来替换其目的仅仅是查询数据的循环。我强烈反对用查询理解替换产生副作用的代码,尽管这样做是可能的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

所有“for”循环都可以替换为 LINQ 语句吗? 的相关文章

随机推荐