这很有效......但是当我使用foreach
代替for
时,这不起作用。我无法理解for
和foreach
是一样的。
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int[] array = new int[10];
Console.WriteLine("enter the array elements to b sorted");
for(int i=0;i<10;i++)
{
array[i] = Convert.ToInt32(Console.ReadLine());
}
int smallest = array[0];
for(int i=0;i<10;i++)
{
if(array[i]<smallest)
{
smallest=array[i];
}
}
int largest = array[9];
for(int i=0;i<10;i++)
{
if (array[i] > largest)
{
largest = array[i];
}
}
Console.WriteLine("the smallest no is {0}", smallest);
Console.WriteLine("the largest no is {0}", largest);
Console.Read();
}
}
}
答案 0 :(得分:31)
你为什么不使用它?
int[] array = { 12, 56, 89, 65, 61, 36, 45, 23 };
int max = array.Max();
int min = array.Min();
答案 1 :(得分:10)
如果你需要使用foreach(由于某种原因)并且不想使用bult-in函数,这里有一个代码片段:
int minint = array[0];
int maxint = array[0];
foreach (int value in array) {
if (value < minint) minint = value;
if (value > maxint) maxint = value;
}
答案 2 :(得分:6)
static void PrintSmallestLargest(int[] arr)
{
if (arr.Length > 0)
{
int small = arr[0];
int large = arr[0];
for (int i = 0; i < arr.Length; i++)
{
if (large < arr[i])
{
int tmp = large;
large = arr[i];
arr[i] = large;
}
if (small > arr[i])
{
int tmp = small;
small = arr[i];
arr[i] = small;
}
}
Console.WriteLine("Smallest is {0}", small);
Console.WriteLine("Largest is {0}", large);
}
}
这样,您可以在一个循环中拥有最小和最大的数字。
答案 3 :(得分:2)
使用foreach时,您(通常)无法修改您正在迭代的集合。
虽然从开发人员的角度来看,for和foreach似乎是相似的,但它们与实现的观点截然不同。
Foreach
使用Iterator
访问单个对象,而for
不知道(或关心)基础对象序列。
答案 4 :(得分:2)
通用扩展方法(一次迭代即可获得Min
和Max
)
public static class MyExtension
{
public static (T Min, T Max) MinMax<T>(this IEnumerable<T> source) where T : IComparable<T>
{
if (source == null)
{
throw new ArgumentNullException(nameof(source));
}
T min = source.FirstOrDefault();
T max = source.FirstOrDefault();
foreach (T item in source)
{
if (item.CompareTo(min) == -1)
{
min = item;
}
if (item.CompareTo(max) == 1)
{
max = item;
}
}
return (Min: min, Max: max);
}
}
此代码使用C#7元组
答案 5 :(得分:1)
using System;
namespace greatest
{
class Greatest
{
public static void Main(String[] args)
{
//get the number of elements
Console.WriteLine("enter the number of elements");
int i;
i=Convert.ToInt32(Console.ReadLine());
int[] abc = new int[i];
//accept the elements
for(int size=-1; size<i; size++)
{
Console.WriteLine("enter the elements");
abc[size]=Convert.ToInt32(Console.ReadLine());
}
//Greatest
int max=abc.Max();
int min=abc.Min();
Console.WriteLine("the m", max);
Console.WriteLine("the mi", min);
Console.Read();
}
}
}
答案 6 :(得分:0)
Int[] number ={1,2,3,4,5,6,7,8,9,10};
Int? Result = null;
foreach(Int i in number)
{
If(!Result.HasValue || i< Result)
{
Result =i;
}
}
Console.WriteLine(Result);
}
答案 7 :(得分:0)
public int MinimumValue { get; private set; }
public int MaxmimumValue { get; private set; }
public void num()
{
int[] array = { 12, 56, 89, 65, 61, 36, 45, 23 };
MaxmimumValue = array[0];
MinimumValue = array[0];
foreach (int num in array)
{
if (num > MaxmimumValue) MaxmimumValue = num;
if (num < MinimumValue) MinimumValue = num;
}
Console.WriteLine(MinimumValue);
Console.WriteLine(MaxmimumValue);
}
答案 8 :(得分:0)
以下是完整的程序:`
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Diagnostics;
namespace oops3
{
public class Demo
{
static void Main(string[] args)
{
Console.WriteLine("Enter the size of the array");
int x = Convert.ToInt32(Console.ReadLine());
int[] arr = new int[x];
Console.WriteLine("Enter the elements of the array");
for(int i=0;i<x;i++)
{
arr[i] = Convert.ToInt32(Console.ReadLine());
}
int smallest = arr[0];
int Largest = arr[0];
for(int i=0;i<x;i++)
{
if(smallest>arr[i])
{
smallest = arr[i];
}
}
for (int i = 0; i < x; i++)
{
if (Largest< arr[i])
{
Largest = arr[i];
}
}
Console.WriteLine("The greater No in the array:" + Largest);
Console.WriteLine("The smallest No in the array:" + smallest);
Console.ReadLine();
}
}
}
答案 9 :(得分:0)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Array_Small_and_lagest {
class Program {
static void Main(string[] args) {
int[] array = new int[10];
Console.WriteLine("enter the array elements to b sorted");
for (int i = 0; i < 10; i++) {
array[i] = Convert.ToInt32(Console.ReadLine());
}
int smallest = array[0];
foreach (int i in array) {
if (i < smallest) {
smallest = i;
}
}
int largest = array[9];
foreach (int i in array) {
if (i > largest) {
largest = i;
}
}
Console.WriteLine("the smallest no is {0}", smallest);
Console.WriteLine("the largest no is {0}", largest);
Console.Read();
}
}
}
答案 10 :(得分:0)
这是很长一段时间。也许是这样的:
public int smallestValue(int[] values)
{
int smallest = int.MaxValue;
for (int i = 0; i < values.Length; i++)
{
smallest = (values[i] < smallest ? values[i] : smallest);
}
return smallest;
}
public static int largestvalue(int[] values)
{
int largest = int.MinValue;
for (int i = 0; i < values.Length; i++)
{
largest = (values[i] > largest ? values[i] : largest);
}
return largest;
}