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();
}
}
我的代码给了我巨大的最大值,我需要得到最大奇数值。如何获得最大奇数值?
答案 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();
}
说明:
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());