如何在c#中将列表中的值相互比较

时间:2015-01-02 19:21:55

标签: c# list

是谁帮我解决了我的这个问题? 我想在键盘插入的列表中找到最大的值,如下所示:

这里可以通过数组来完成:

        int[] values = new int[10];
        for (int i = 0; i < values.Length; i++)
        {
            values[i] = (int) (textbox.Text);
        }
        //to campare them
        int bigValue=0;
        for(int j=0;j<values.Lenght;j++)
        {
          if(bigValue<values[j])
           { 
             bigValue==values[j];
           } 
         }
        ////////////////////////////////

但是在我的代码中我必须使用列表我填写了列表,但现在我不知道如何比较其值以找到最低和最大的值:

        List<int> values= new List<int>();
        values.Add((int)(textbox.Text));

4 个答案:

答案 0 :(得分:2)

Theres已经内置了函数MaxMin

int maxValue = values.Max();
int minValue = values.Min();

您的原始功能也会起作用,用Count代替Length,因为索引也适用于列表。

答案 1 :(得分:1)

使用LINQ Min&amp; Max函数: -

int LowestNumber = values.Min();
int HighestNumber = values.Max();

答案 2 :(得分:0)

如果您说您还需要在程序中稍后使用该列表,我猜您可能会发现它只是为了排序而有用。

values.Sort((value1, value2) => value1.CompareTo(value2));

使用此选项,minValue将为值[0],尽管建议的方法是使用内置函数,因为他们已经提到过。

答案 3 :(得分:0)

您可以这样说,这对任何IEnumerable<int>都有效,无论是int[]List<int>还是其他:

int? max = null ;
foreach( int value in someList )
{
  max = (max??value) > value : (max??value) ;
}

在此结束时,如果列表为空,max将为null;否则max将具有列表中的最高值。