【问题标题】:Modify IEnumerable function修改 IEnumerable 函数
【发布时间】:2017-06-22 05:36:44
【问题描述】:

我有下一个代码:

 public sealed class Gaaa
        {
            private readonly int _ids;

            public Gaaa(int id)
            {
                _ids = id;
            }
            public static IEnumerable<Gaaa> Generate(int num)
            {
                return Enumerable.Range(1, num).Select(ids => new Gaaa(ids + 1));
            }
        }

如何在 Generate 函数中以不同方式表示代码?

【问题讨论】:

  • “不同”是什么意思?你的意思是不使用点符号,而是使用更罗嗦的版本?
  • @Sweeper,是的,我想使用更冗长的版本或其他方式
  • 实际上有无数种方法可以将函数修改为不同的。请具体说明您的问题。

标签: c# linq ienumerable


【解决方案1】:

我假设你不喜欢点符号。以下是你的做法:

return from id in Enumerable.Range(1, num)
    select new Gaaa(id + 1);

我个人更喜欢这里的点符号,因为您尝试做的事情非常简单 - 创建一堆 Gaaas 并具有递增的范围。我认为在这种特殊情况下使用点表示法更具可读性。

我认为查询表示法更适合用于涉及集合和更复杂操作的情况,例如:

from item in aCollection
where item.Property2 > 10
orderby item.Property1
select item.Property3

此外,查询符号在进行连接时特别可读。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-12
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多