首页 > 编程语言 >记一个C#排序

记一个C#排序

时间:2023-04-01 23:34:08浏览次数:40  
标签:DataBase ScoreInfo C# float ID 一个 CSharp 排序 public

using System;

namespace PX;

public class PXTest
{
    public static void Show()
    {
        ScoreInfo scoreInfo = new ScoreInfo()
        {
            ID = 1,
            Name = "张三",
            CSharp = 12,
            DataStruct = 24,
            DataBase = 36
        };
        ScoreInfo scoreInfo2 = new ScoreInfo()
        {
            ID = 2,
            Name = "李四",
            CSharp = 13,
            DataStruct = 24,
            DataBase = 36
        };
        ScoreInfo scoreInfo3 = new ScoreInfo()
        {
            ID = 3,
            Name = "王五",
            CSharp = 14,
            DataStruct = 33,
            DataBase = 32
        };
        ScoreInfo[] scoreInfos = { scoreInfo, scoreInfo2, scoreInfo3 };

     var cs = Array.BinarySearch<ScoreInfo>(scoreInfos,scoreInfo3);//返回索引
      System.Console.WriteLine($"二分查找结果:{cs.ToString()}");
        Array.Sort<ScoreInfo>(scoreInfos);
        foreach (var item in scoreInfos)
        {
            System.Console.WriteLine(item.ToString());
        }
        CSharpCompare csharp = new CSharpCompare();
        Array.Sort(scoreInfos, csharp);
        foreach (var item in scoreInfos)
        {
            System.Console.WriteLine(item.ToString());
        }
    }
}


public class ScoreInfo : IComparable<ScoreInfo>
{
    public int ID { get; set; }
    public string Name { get; set; }
    private float _cSharp;
    public float CSharp
    {
        get { return _cSharp; }
        set { _cSharp = CheckScore(value); }
    }
    public float DataStruct { get; set; }
    public float DataBase { get; set; }
    public float Total
    {
        get
        {
            return CSharp + DataStruct + DataBase;
        }
    }
    private float CheckScore(float score)
    {
        if (score < 0 || score > 100)
        {
            throw new ArgumentOutOfRangeException("成绩不合法!");
        }
        return score;
    }

    public int CompareTo(ScoreInfo? other)
    {
        return ID.CompareTo(other?.ID);
    }

    public override string ToString()
    {
        return $"{ID}-{Name}-{CSharp}-{DataStruct}-{DataBase}";
    }
}
//针对C#程序设计成绩的ICompare实现
public class CSharpCompare : IComparer<ScoreInfo>
{
    public int Compare(ScoreInfo left, ScoreInfo right)
    {
        return right.CSharp.CompareTo(left.CSharp);
    }
}

打印结果:

1-张三-12-24-36
2-李四-13-24-36
3-王五-14-33-32
3-王五-14-33-32
2-李四-13-24-36
1-张三-12-24-36

 

标签:DataBase,ScoreInfo,C#,float,ID,一个,CSharp,排序,public
From: https://www.cnblogs.com/Insist-Y/p/17279693.html

相关文章

  • 算法随想Day53【单调栈】| LC84-柱状图中最大的矩形
    intlargestRectangleArea(vector&heights){intresult=0;stackst;heights.insert(heights.begin(),0);heights.push_back(0);st.push(0);for(inti=1;i<heights.size();i++){if(heights[i]>heights[st.top()]){st.push(......
  • vue+webSocket+springCloud消息推送交互
    一、后台代码:1、pom里面加上依赖;<!--webSocket坐标依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.2.4.RE......
  • Spring Boot 集成 GRPC
    技术:SpringBoot2.0.5.RELEASE+Grpc1.15.0  运行环境:JDK1.8 概述:SpringBoot框架中集成Grpc服务详细一.背景SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定......
  • CTF 萌新隐写(1)
    题目一描述喜欢用生日做密码。有一个zip文件。思路及解答生日做密码,生日格式有很多种,最简单的是纯数字,八位数字直接爆破。得到口令:19981000打开文件得出flag:flag{brute_force}题目一描述只有一个zip文件思路及解答解压后是一个word文档,打开文档发现是然后什么也没有......
  • Django笔记十三之select_for_update等选择和更新等相关操作
    本篇笔记将介绍update和create的一些其他用法,目录如下:get_or_createupdate_or_createselect_for_updatebulk_createbulk_update1、get_or_create前面我们介绍过get()和create()的用法,那么get_or_create()的意思很简单,就是获取或者创建,如果存在就返回,不存在就......
  • C#个人邮件发送功能
    在收件人邮箱开启stmp授权,获取授权码,具体在要登陆对应邮箱在设置具体百度调用微软提供SmtpClient的接口SmtpClient类(System.Net.Mail)|MicrosoftLearn......
  • Mac 恢复出厂设置后
    下载的软件迅雷:下载工具snipaster:截图软件阿里云盘:网盘工具iterm2:终端pages:记笔记和写作工具infuse:流媒体播放器chrome浏览器ghelper:chrome插件配置配置homebrew清华源homebrewexportHOMEBREW_INSTALL_FROM_API=1exportHOMEBREW_API_DOMAIN......
  • 基于docker和cri-dockerd部署k8sv1.26.3
    cri-dockerd是什么?在Kubernetesv1.24及更早版本中,我们使用docker作为容器引擎在k8s上使用时,依赖一个dockershim的内置k8s组件;k8sv1.24发行版中将dockershim组件给移除了;取而代之的就是cri-dockerd(当然还有其它容器接口);简单讲CRI就是容器运行时接口(ContainerRunt......
  • NonBlocking 非阻塞IO 状态下的实现单线程协程socket通信
    #服务器端#-*-coding:utf-8-*-importtimefromsocketimport*server=socket(AF_INET,SOCK_STREAM)server.bind(('127.0.0.1',8081))server.listen(5)server.setblocking(False)#至关重要的一步!!!conn_l=[]print('waiting...')whileTrue:......
  • PAT Basic 1061. 判断题
    PATBasic1061.判断题1.题目描述:判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。2.输入格式:输入在第一行给出两个不超过100的正整数N和M,分别是学生人数和判断题数量。第二行给出M个不超过5的正整数,是每道题的满分值。第三......