当前位置: 首页 > 知识库问答 >
问题:

按与输入的差值计算的C#软数字

昌栋
2023-03-14

我有以下代码。请帮助我得到我想要的输出。我有一个数字列表,然后我有一个输入值,它是4。我想我的列表将排序的基础上0的差异,然后其余的将是升序。例如,在我的列表中有4S。我的输入是4,所以我想对那些数字进行排序,其中number item-input value=0(4-4=0)。

C#

    static void Main(string[] args)
    {
        var numbers = new List<int> { 1, 2, 3, 4, 4, 5, 6, 7, 4, 8, 1, 4 };
        var sortedNumbers = numbers.OrderBy(x => x - 4 == 0);
        foreach (var item in sortedNumbers)
        {
            Console.WriteLine(item);
        }
        Console.ReadLine();
    }

输出

1
2
3
5
6
7
8
1
4
4
4
4

所需输出

4
4
4
4
1
1
2
3
5
6
7
8

共有2个答案

严言
2023-03-14

您可以通过在OrderBylambda中使用三元表达式来实现所需的输出:

    static void Main(string[] args)
    {
        var numbers = new List<int> { 1, 2, 3, 4, 4, 5, 6, 7, 4, 8, 1, 4 };
        var sortedNumbers = numbers.OrderBy(x => x==4? int.MinValue: x);
        foreach (var item in sortedNumbers)
        {
            Console.WriteLine(item);
        }
        Console.ReadLine();
    }       

输出:

4
4
4
4
1
1
2
3
5
6
7
8

编辑:如果您的列表中有零或负数,您的数字将按如下顺序排列:首先是完全匹配,然后是零,然后是一个根据它们的数字,例如:{-1,0,0,-12,1,2,3,4,4,5,6,7,4,8,1,4}

结果将如下:

4
4
4
4
-12
-1
0
0
1
1
2
3
5
6
7
8
赵炯
2023-03-14

您需要使用OrderBy(x=>x-4==0),而不是OrderByDescending,因为true比false“更多”,您首先需要它们。您还希望按其值对其余部分进行排序:

var sortedNumbers = numbers.OrderByDescending(x => x == 4).ThenBy(x => x);

如果您不记得是否需要使用OrderByOrderByDescending,请使用:

numbers.OrderBy(x => x == 4 ? 0 : 1)
 类似资料:
  • 本文向大家介绍JavaScript计算出两个数的差值,包括了JavaScript计算出两个数的差值的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JavaScript计算两个数差的具体代码,供大家参考,具体内容如下 需求 在两个输入框中输入两个数字,点击按钮的时候,计算出两个数字的差并且显示到id为result的div中。 实现代码 上面代码实现刚开始说的需求,希望对学习前端开发的小

  • 我正在处理存在于一个php文件中的html表单,如下所示,我想计算输入的html输入值。 Php/HTML代码: 点击保存后,它会保存在JSON中,如下所示,并输入值列表。此时,我已经输入了值,因此在JSON中显示如下: 下面是属于上述html/php代码的表单截图部分: 输入值后,显示如下: 以下是inspect上的html代码: 问题陈述: 我想知道我需要添加什么php代码,以便获得输入值的计

  • 该程序每秒接收大约50000个数字。 在任何给定时刻,我都需要计算最后一秒到达的值(数字)的最小值、最大值和平均值(关于给定时刻)。 有没有办法不用数组或列表(缓冲区)来存储到达的数字和计算结果? 如果我需要使用缓冲区,那么实现这一点的有效方法是什么? (请注意,缓冲区中的数字也必须不时有效地删除)

  • 我用Java写了一个练习程序,练习一个数的乘方。不知不觉中,我犯了一个奇怪的错误。然而,无论我怎么输入,答案还是正确的。下面是这段代码。 我真想知道到底发生了什么。为什么语句“System.out.println(num1”的幂“num2”是“num1)”没有打印num1的值。 以下是输出: 我使用ECLIPSE LUNA编写java代码。

  • 问题内容: 请问您在以下方面的帮助吗? 我正在尝试计算结果中从一条记录到下一条记录的变化。如果我向您显示我当前的查询和结果,可能会有所帮助… 查询给我这些结果… 理想情况下,我想要获得的结果将类似于以下内容… 查看“ 2012年1月1日”的行,由于“笔数”已从以前的526增加到531,因此“ TChange”的值为5。“ FChange”将基于“ Funded”字段。我猜想要知道的是,此示例的上一

  • 本文向大家介绍js计算文本框输入的字符数,包括了js计算文本框输入的字符数的使用技巧和注意事项,需要的朋友参考一下 使用JavaScript实时的计算用户当前输入的字符数函数代码: javascript实现统计字符数很简单,上面分享给大家的代码可以直接使用,希望对大家的学习有所帮助。