【问题标题】:IEnumerable<int> Collection find sum and if it's divisible by 2IEnumerable<int> 集合找到总和,如果它可以被 2 整除
【发布时间】:2019-01-12 21:22:25
【问题描述】:

我是 C# 编程的新手,我不知道如何解决这个问题。我应该把这段代码放在 main 中,并在另一个类中有 DivisibleByTwo 方法吗???

另外,IEnumerable 到底是什么???

问题:创建一个将整数集合作为参数的函数。然后该函数应确定集合的总和是否可被 2 整除并返回结果。

类 SumDivisible {

    public bool DivisibleByTwo(IEnumerable<int>integerCollection)
    {
        int sum = 0;

        foreach (int integer in intCollection)
        {
            sum += integer;
        }

        if (sum % 2 == 0)
        {
            return true;
        }

        else
        {
            return false;
        }
    }

【问题讨论】:

  • 您可能想要使用long sum = 0,因为整数的总和可以大于int.MaxValue

标签: c# ienumerable


【解决方案1】:

IEnumerableIEnumerable&lt;T&gt; 只是一个支持枚举的集合(像通过 foreach 循环一样进行迭代循环)。它本身只是一个特定的接口——第一个是无类型的集合,第二个是特定类型的(T 是类型)。两者都可以用在“foreach”循环或使用 LINQ 查询之类的地方。

问题本身并没有说明你是否应该将它包含在一个类中。它只是说创建一个函数(你做了)。这是一个有趣的替代版本。

public bool IsEven(IEnumerable<int> source)
   => source.Sum() % 2 == 0;

【讨论】:

  • 谢谢安东尼! lambda 版本很甜!
  • @njia 如果我的回答解决了您的问题,请将此标记为已回答。
猜你喜欢
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 2012-10-16
  • 2011-02-18
相关资源
最近更新 更多