c#排序

baidu_34817953 2016-05-10 12:46:36
1,4,5,7,3,8,9,怎么判断是在7之前还是在7之后。
...全文
112 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_34817953 2016-05-10
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
            int[] a = {1, 4, 5, 7, 3, 8, 9};
            int inp = 3;

            var m = a.ToList().IndexOf(inp) > a.ToList().IndexOf(7) ? "后" : "前";
            Console.WriteLine("{0} 在 7 之{1}", inp, m);
可以看下我的那个程序该怎么改嘛
baidu_34817953 2016-05-10
  • 打赏
  • 举报
回复
引用 楼主 baidu_34817953 的回复:
1,4,5,7,3,8,9,怎么判断是在7之前还是在7之后。
private void button1_Click(object sender, EventArgs e)
        {
            var maxTime = list.Select(w => w.WorkTime).Max();

            list.ForEach(w =>
            {
                w.Efficiency = (decimal)(w.WorkTime / maxTime) * 100;
                //if (w.Efficiency <= 100)
                {
                    w.Jam = (decimal)100 - w.Efficiency;
                    w.Wait = 0;
                }
                else
                {
                    w.Jam = 0;
                    w.Wait = (decimal)100 - w.Efficiency;
                }
            });

            this.dataGridView1.DataSource = new List<Work>();
            this.dataGridView1.DataSource = list;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            chart1.Series.Clear();
            Series series1 = new Series("有效");
            Series series2 = new Series("拥堵");
            Series series3 = new Series("等待");
            series1.ChartType = SeriesChartType.StackedColumn;
            series2.ChartType = SeriesChartType.StackedColumn;
            series3.ChartType = SeriesChartType.StackedColumn;
            foreach (var x in list)
            {
                series1.Points.AddY(x.Efficiency);
                series2.Points.AddY(x.Jam);
                series3.Points.AddY(x.Wait);
            }
            chart1.ChartAreas[0].AxisY.Maximum = 100;
            chart1.Series.Add(series1);
            chart1.Series.Add(series2);
            chart1.Series.Add(series3); 
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            list.AddRange(new Work[] { 
                new Work() { WorkStation = 1, WorkTime = 12 },
                new Work() { WorkStation = 2, WorkTime = 15 },
                new Work() { WorkStation = 3, WorkTime = 17 },
                new Work() { WorkStation = 4, WorkTime = 13 },
                new Work() { WorkStation = 5, WorkTime = 11 },
            });

            this.dataGridView1.DataSource = list;
        }
    }
    public class Work
    {
        public int WorkStation { get; set; }
        public double WorkTime { get; set; }
        public decimal Efficiency { get; set; }
        public decimal Jam { get; set; }
        public decimal Wait { get; set; }
    }
打注释的地方我该怎么改呢....才能实现找出最大的然后完成下面的运算。
xuzuning 2016-05-10
  • 打赏
  • 举报
回复
            int[] a = {1, 4, 5, 7, 3, 8, 9};
            int inp = 3;

            var m = a.ToList().IndexOf(inp) > a.ToList().IndexOf(7) ? "后" : "前";
            Console.WriteLine("{0} 在 7 之{1}", inp, m);
江南小鱼 2016-05-10
  • 打赏
  • 举报
回复
1、把这堆数据(1,4,5,7,3,8,9)用数组进行存储 2、对数字进行冒泡或者快速排序(升序) 3、小于7的肯定是在7之前,大于7的在7之后
  • 打赏
  • 举报
回复
没排序的只能通过循环遍历,如果找到你的数字,却还没遍历到7,就说明在之前,否则就是之后(假设你输入的值必定能够找到)

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧