得到最大奇数

时间:2016-04-14 09:58:17

标签: c# max

class Program
{
    static void Main(string[] args)
    {
        Random rnd = new Random();
        int[] mass = new int[10];
        for (int i = 0; i < mass.Length; i++)
        {
            mass[i] = rnd.Next(0, 10);
        }
        Console.WriteLine("display random Massive: \n");
        foreach (var i in mass)
        {
            Console.Write("{0} ", i);
        }
        Console.WriteLine("\n");
        int max = mass.Max();
        Console.WriteLine("max value in Massive = {0}", max);

        Console.ReadLine();
    }
}

我的代码给了我巨大的最大值,我需要得到最大奇数值。如何获得最大奇数值?

4 个答案:

答案 0 :(得分:2)

您可以使用Linq轻松完成此操作

mass.Where (x => x % 2 != 0).Max ();

答案 1 :(得分:1)

使用linq可以更轻松地完成此任务:

static void Main(string[] args)
{
    Random rnd = new Random();
    int[] mass = Enumerable.Range(0, 10).Select(i => rnd.Next(0, 10)).ToArray();
    Console.WriteLine("display random Massive: ");
    Console.WriteLine(string.Join(" ", mass));
    Console.WriteLine();
    int max = mass.Where(i => (i & 1) == 1).Max();
    Console.WriteLine("max value in Massive = {0}", max);

    Console.ReadLine();
}

说明:

  • 我通过生成10个随机数来初始化数组,将它们转换为数组
  • 我使用string.Join
  • 输出它们
  • 使用Where测试最后一位是奇数的过滤器
  • 仅对这些奇数号码Max进行调用。

请注意,您不需要使用\n,因为Console.WriteLine会在最后添加新行。

答案 2 :(得分:0)

只需更改

int max = mass.Max();

int max = mass.Where(x=>(x%2)==1).Max();

答案 3 :(得分:0)

我觉得你是一个像我一样的初学者而且还不懂linq

声明用于保存奇数值的列表

List<int> oddList = new List<int>();

然后在你的foreach方法

foreach (var i in mass) 
    { 

        if (i % 2 != 0) //check that number is odd  

            {
                  oddList.Add(i); //add odd randoms to list 

            {

     } 

Console. WriteLine(oddList.Max().ToString());