删除C#中List中的最小值(需要帮助)

时间:2016-05-31 14:29:54

标签: c# list

我试图删除List的最小值,main()函数调用removeSmallest()函数并写入返回列表,但我得到的只有:

“System.Collection.Generic.List`1 [System.Int32]”

Varibles解释: “n” - >计算foreach-lopp运行的频率,以便通过保存它们,在适当的时间在List中粘贴较早的值, “posa” - >在较右边的列表中保存较早值的位置以超过它们, “a” - >保存以前的数字,将其与下一个数字进行比较,

解释: “数字” - >是输入, “list” - >输出,

您可以找到我的代码here或[此处] [2]

THX for your Help !!

[2]:http://ideone.com/Y6lUSC ideone.com

3 个答案:

答案 0 :(得分:2)

LINQ在这里可以派上用场,你可以使用这个想法:

var numbers = new []{22,31,14,25,26,67,8,49,101};
var numbersNoLowest = numbers.OrderByDescending(x => x).Take(numbers.Count() - 1).ToList();
foreach(var number in numbersNoLowest)
{
    Console.WriteLine(number);    
}

在此处运行:http://csharppad.com/gist/0d9d0f87b7c3bdf28a4681f4a8ada241

答案 1 :(得分:0)

好吧,只需Remove()一个Min()

   List<int> numbers = new List<int>() {
     5, 3, 9, -2, 5, -2, 4 // please, notice that -2 appeared twice
   };

   // Just do this
   numbers.Remove(numbers.Min());

   // Let´s print out the test:
   // 5, 3, 9, 5, 4
   Console.Write(String.Join(", ", numbers));

答案 2 :(得分:0)

我不确定您的代码尝试做什么,但它不会删除最小值。如果要删除所有出现的最小值&amp;保留原始顺序中的剩余值(这是代码中部分发生的情况),以下内容应该有效:

  int min = numbers.Min();
  List<int> list = numbers.Where(val => val != min).ToList();