-
c#sort升序还是降序_C#字典Dictionary排序(顺序、倒序)-亮术网
2020-12-19 02:10:33C# .net 3.5 以上的版本引入 Linq 后,字典Dictionary排序变...在 C# 中,字典Dictionary排序既可按升序排又可按降序排,还可先按值升序排再按键降序排或反过来,并且还能按键或值的长短排;它们排序的代码都很简单...C# .net 3.5 以上的版本引入 Linq 后,字典Dictionary排序变得十分简单,用一句类似 sql 数据库查询语句即可搞定;不过,.net 2.0 排序要稍微麻烦一点,为便于使用,将总结 .net 3.5 和 2.0 的排序方法。
在 C# 中,字典Dictionary排序既可按升序排又可按降序排,还可先按值升序排再按键降序排或反过来,并且还能按键或值的长短排;它们排序的代码都很简单,直接调内置的方法即可实现。
一、创建字典Dictionary 对象
假如 Dictionary 中保存的是一个网站页面流量,key 是网页名称,值value对应的是网页被访问的次数,由于网页的访问次要不断的统计,所以不能用 int 作为 key,只能用网页名称,创建 Dictionary 对象及添加数据代码如下:
Dictionary dic = new Dictionary();
dic.Add("index.html", 50);
dic.Add("product.html", 13);
dic.Add("aboutus.html", 4);
dic.Add("online.aspx", 22);
dic.Add("news.aspx", 18);
二、.net 3.5 以上版本 Dictionary排序(即 linq dictionary 排序)
1、Dictionary按值value排序
private void DictionarySort(Dictionary dic)
{
var dicSort = from objDic in dic orderby objDic.Value descending select objDic;
foreach(KeyValuePair kvp in dicSort)
Response.Write(kvp.Key + ":" + kvp.Value + "
");}
排序结果(倒序):
index.html:50
online.aspx:22
news.aspx:18
product.html:13
aboutus.html:4
上述代码是按降序(倒序)排列,如果想按升序(顺序)排列,只需要把变量 dicSort 右边的 descending 去掉即可。
2、C# Dictionary key 排序
如果要按 Key 排序,只需要把变量 dicSort 右边的 objDic.Value 改为 objDic.Key 即可。
3、C# Dictionary 先按值 Value 再按键 Key 排序
假如要先按值 Value 升序排序再按键 Key 降序排序,代码如下:
private IOrderedEnumerable> DictionarySort(Dictionary dic)
{
return dic.OrderBy(i => i.Value).OrderByDescending(i => i.Key);
}
调用:
var dicSort = DictionarySort(dic);
排序结果:
product.html:13
online.aspx:22
news.aspx:18
index.html:50
aboutus.html:4
4、C# Dictionary 按键 Key 的长度排序
假如要求根据键 Key 的长度排序,短的排在先、长的排在后,代码如下:
private IOrderedEnumerable> DictionarySort(Dictionary dic)
{
return dic.OrderBy(i => i.Key.Length);
}
调用:
var dicSort = DictionarySort(dic);
排序结果:
news.aspx:18
index.html:50
online.aspx:22
product.html:13
aboutus.html:4
假如要求长的排在先、短的排在后,只需把代码改为:
return dic.OrderByDescending(i => i.Key.Length);
三、.net 2.0 版本 Dictionary排序
1、dictionary按值value排序(倒序)
private void DictionarySort(Dictionary dic)
{
if (dic.Count > 0)
{
List> lst = new List>(dic);
lst.Sort(delegate(KeyValuePair s1, KeyValuePair s2)
{
return s2.Value.CompareTo(s1.Value);
});
dic.Clear();
foreach (KeyValuePair kvp in lst)
Response.Write(kvp.Key + ":" + kvp.Value + "
");}
}
排序结果:
index.html:50
online.aspx:22
news.aspx:18
product.html:13
aboutus.html:4
顺序排列:只需要把变量 return s2.Value.CompareTo(s1.Value); 改为 return s1.Value.CompareTo(s2.Value); 即可。
2、C# dictionary key 排序(倒序、顺序)
如果要按 Key 排序,倒序只需把 return s2.Value.CompareTo(s1.Value); 改为 return s2.Key.CompareTo(s1.Key);;顺序只需把return s2.Key.CompareTo(s1.Key); 改为 return s1.Key.CompareTo(s2.Key); 即可。
-
数据库课程设计代码 实现将一个单链升序和一个单链降序合并为单链升序的算法
2009-06-02 13:06:35要求:1.就地将所给单链降序逆置,使其变为单链升序; 2.运用MergeList_L算法思想将这两个单链升序合并为一个单链升序; 3.创建Menu( )菜单。 -
小程序让数据库数据排序输出
2021-04-19 16:24:41小程序让数据库数据排序输出 asc为升序 desc为降序 使用orderBy方法,第一个参数是变量名,第二个参数决定升序降序 ...不需要进行升序和降序的地方,我们传入数据0或者不带参数即可(默认值为0)。 ... -
【2020-2021春学期】数据库作业4:索引、数据插入和简单数据查询
2021-03-28 15:26:37文章目录一、索引1....-- ASC 升序 DESC 降序 ,一般默认为升序`在这里插入代码片` 2.修改索引 alter index SCno on SC rename to SCSno --标准sql exec sp_rename 'SC.SCno','SCSno','index'; --T一、索引
1.建立索引
create unique index SCno on SC(Sno ASC,Cno DESC); -- ASC 升序 DESC 降序 ,一般默认为升序
2.修改索引
alter index SCno on SC rename to SCSno --标准sql exec sp_rename 'SC.SCno','SCSno','index'; --T-sql
3.删除索引
drop index SCSno on SC
二、数据插入
insert into Student values('20191102038','贾世奇','男','20','计算机科学与技术'); --按表中属性的顺序 insert into Student(Sname,Sno,Ssex,Sage) values('张三','2000','男','21'), --按指定的顺序,未指定的默认为NULL ('李四','2001','男','21'); --可以一次添加多个 --有时候还需要考虑到参照完整性规则,例如外码不为空时是否在参照范围内
三、简单数据查询
1.查询整张表
select * from Student; --*代表所有属性
2.查询指定属性
select Sno,Sname,Ssex from Student;
-
sql server数据库实验代码
2009-04-16 16:12:37数据库概念实验代码。。 在表S,C,SC上完成以下查询: 1. 查询学生的基本信息; 2. 查询“CS”系学生的基本信息; 3. 查询“CS”系学生年龄不在19到21之间的学生的学号、姓名; 4. 找出“CS”系年龄最大的学生... -
数据库存储过程分页显示
2020-12-15 17:52:31注:需要建立索引 代码如下:/* 经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下: exec GetRecordFromPage ... -
java中sql语句升序排列_使用JAVA进行排序
2021-03-14 16:09:05利用JAVA完成排序当我们在进行数据库进行查询的时候,当需要按某个字段来进行排序的时候,可以使用SQL语句来完成排序,可以升序,也可以降序。JAVA中的Collections类也可以完成这种操作,SQL的用法和这种集合工具类...利用JAVA完成排序
当我们在进行数据库进行查询的时候,当需要按某个字段来进行排序的时候,可以使用SQL语句来完成排序,可以升序,也可以降序。JAVA中的Collections类也可以完成这种操作,SQL的用法和这种集合工具类的操作,可以用于不同的情况中,至于怎么用,可以根据业务场景来选择,下面我罗列出具体的代码,大家可以参考。
1)创建工程名为sort的JAVA工程
创建包结构:
创建User类:
1 package com.sunyard.bean;
2
3 /**
4 *
5 * 用户类,实现Comparable接口,并且在实体类中实现需要排序的逻辑代码
6 *
7 * @author:774346810@qq.com
8 * @date:2017-6-25
9 */
10 public class User implements Comparable{
11 private String id;//编号
12 private String name;//姓名
13 private double salary;//工资
14 private int age;//年龄
15 private String city;//城市
16
17 public User(){}
18
19 public User(String id, String name, double salary, int age, String city) {
20 this.id = id;
21 this.name = name;
22 this.salary = salary;
23 this.age = age;
24 this.city = city;
25 }
26
27 public String getId() {
28 return id;
29 }
30 public void setId(String id) {
31 this.id = id;
32 }
33 public String getName() {
34 return name;
35 }
36 public void setName(String name) {
37 this.name = name;
38 }
39 public double getSalary() {
40 return salary;
41 }
42 public void setSalary(double salary) {
43 this.salary = salary;
44 }
45 public int getAge() {
46 return age;
47 }
48 public void setAge(int age) {
49 this.age = age;
50 }
51 public String getCity() {
52 return city;
53 }
54 public void setCity(String city) {
55 this.city = city;
56 }
57
58 @Override
59 public String toString() {
60 return "User [id=" + id + ", name=" + name + ", salary=" + salary
61 + ", age=" + age + ", city=" + city + "]";
62 }
63 @Override
64 public int compareTo(User o) {
65 int result = ((this.getAge() - o.getAge()) * 10);//按照年龄的降序排序
66 //int result = ((o.getAge() - this.getAge()) * 10);//按照年龄的升序排序
67 //int result = o.getName().compareTo(this.getName());//按照英文字典顺序的降序
68 //int result = this.getName().compareTo(o.getName());//按照英文字典顺序的升序
69 return result;
70 }
71
72 }
创建测试类测试:
1 package com.sunyard.test;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 import com.sunyard.bean.User;
8
9 public class Test {
10 public static void main(String[] args) {
11 List users = new ArrayList();
12 User user1 = new User("1", "zhangsan", 10000, 29, "hangzhou");
13 User user2 = new User("2", "lisi", 12000, 25, "hangzhou");
14 User user3 = new User("3", "wangwu", 11000, 27, "hangzhou");
15 User user4 = new User("4", "zhaoliu", 11500, 26, "hangzhou");
16
17 users.add(user1);
18 users.add(user2);
19 users.add(user3);
20 users.add(user4);
21
22 System.out.println("排序前 -------------------- >>>");
23 for(int i = 0;i < users.size();i++){
24 System.out.println(users.get(i));
25 }
26
27 Collections.sort(users);
28
29 System.out.println("排序后 -------------------- >>>");
30 for(int i = 0;i < users.size();i++){
31 System.out.println(users.get(i));
32 }
33 }
34 }
控制台输出:
1 排序前 -------------------- >>>
2 User [id=1, name=zhangsan, salary=10000.0, age=29, city=hangzhou]
3 User [id=2, name=lisi, salary=12000.0, age=25, city=hangzhou]
4 User [id=3, name=wangwu, salary=11000.0, age=27, city=hangzhou]
5 User [id=4, name=zhaoliu, salary=11500.0, age=26, city=hangzhou]
6 排序后 -------------------- >>>
7 User [id=2, name=lisi, salary=12000.0, age=25, city=hangzhou]
8 User [id=4, name=zhaoliu, salary=11500.0, age=26, city=hangzhou]
9 User [id=3, name=wangwu, salary=11000.0, age=27, city=hangzhou]
10 User [id=1, name=zhangsan, salary=10000.0, age=29, city=hangzhou]
第二种方式,实现自定义的比较器:
自定义比较器代码:
1 package com.sunyard.util;
2
3 import java.util.Comparator;
4
5 import com.sunyard.bean.User;
6
7 /**
8 *
实现自定义比较器
9 * @author:774346810@qq.com
10 * @date:2017-6-25
11 */
12 public class UserComparator implements Comparator{
13
14 @Override
15 public int compare(User o1, User o2) {
16 int result = 0;
17 result = ((o1.getAge() - o2.getAge()) * 10);//升序
18 result = ((o2.getAge() - o1.getAge()) * 10);//降序
19 return result;
20 }
21
22 }
测试类:
1 package com.sunyard.test;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 import com.sunyard.bean.User;
8 import com.sunyard.util.UserComparator;
9
10 public class Demo {
11 public static void main(String[] args) {
12 List users = new ArrayList();
13 User user1 = new User("1", "zhangsan", 10000, 29, "hangzhou");
14 User user2 = new User("2", "lisi", 12000, 25, "hangzhou");
15 User user3 = new User("3", "wangwu", 11000, 27, "hangzhou");
16 User user4 = new User("4", "zhaoliu", 11500, 26, "hangzhou");
17
18 users.add(user1);
19 users.add(user2);
20 users.add(user3);
21 users.add(user4);
22
23 System.out.println("排序前 -------------------- >>>");
24 for(int i = 0;i < users.size();i++){
25 System.out.println(users.get(i));
26 }
27
28 UserComparator comparator = new UserComparator();
29 Collections.sort(users, comparator);
30
31 System.out.println("排序后 -------------------- >>>");
32 for(int i = 0;i < users.size();i++){
33 System.out.println(users.get(i));
34 }
35 }
36 }
控制台输出:
1 排序前 -------------------- >>>
2 User [id=1, name=zhangsan, salary=10000.0, age=29, city=hangzhou]
3 User [id=2, name=lisi, salary=12000.0, age=25, city=hangzhou]
4 User [id=3, name=wangwu, salary=11000.0, age=27, city=hangzhou]
5 User [id=4, name=zhaoliu, salary=11500.0, age=26, city=hangzhou]
6 排序后 -------------------- >>>
7 User [id=1, name=zhangsan, salary=10000.0, age=29, city=hangzhou]
8 User [id=3, name=wangwu, salary=11000.0, age=27, city=hangzhou]
9 User [id=4, name=zhaoliu, salary=11500.0, age=26, city=hangzhou]
10 User [id=2, name=lisi, salary=12000.0, age=25, city=hangzhou]
转载于:https://www.cnblogs.com/yujiwei/p/7077548.html
-
SQLite教程(五):索引和数据分析/清理
2020-12-16 11:14:40在SQLite中,创建索引的SQL语法和其他大多数关系型数据库基本相同,因为这里也仅仅是给出示例用法: 代码如下: sqlite> CREATE TABLE testtable (first_col integer,second_col integer); –创建最简单的... -
堆排序稳定性举例_最常用的 8 个排序算法:从原理到改进,再到代码兑现透彻解析...
2021-01-17 13:07:32排序算法是非常基础同时又应用非常广泛的算法,无论在工作还是在生活中,比如:数据库脚本,如MSSql, MySql, NoSql 中按多个关键词的升序或降序排序,例如,学生按照考试分数排名次,分数相等的再按照学号排序。... -
数据库实验报告
2017-12-14 23:37:15(6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。 (7)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。 (8)检索‘OS’课成绩高于该课平均成绩的同学学号... -
mysql数据库操作
2018-08-16 12:38:50一、基本命令 1、启动服务, 已管理员身份运行cmd ...2、停止服务 ... 3、连接数据库 ... 4、断开连接 ...5、查看mysql版本:select version();...使用python写代码前,要退出mysql,要用pip install PyMySql添加库 -
从数据库中查找数据并按首字母排序
2017-08-15 08:26:46排序的方式有两种:升序(ASC)和降序(DSC)。 前些天修改项目代码时发现,按照这种规则实现排序时,只有当数据库表中的数据为英文时,才可以正确排序,当表中的数据为中文时,就不能按照中文的首字母对数据进行... -
如何按值对字典排序?
2021-04-13 16:05:28注意:我在这里阅读了堆栈溢出问题,可能会更改我的代码以包含字典列表,但是由于我实际上并不需要字典列表,因此我想知道是否有更简单的解决方案来按升序或降序进行排序。 解决方案: Python 3.7+或CPython 3.6 ... -
laylaRepository:数据科学纳米学位课程编程-源码
2021-03-26 03:36:41用户还可以选择查看原始数据,并按升序或降序按列对这些数据进行排序。 项目提交。 使用的文件运行该程序所需的文件为: washington.csv new_york_city.csv chicago.csv 要求该程序是用Python(版本3.7.1)编写... -
高校水电费管理系统-基于QT(代码+程序)
2019-07-29 17:58:527. 信息显示业务:可显示当前系统中所有学生和教工的记录,包含历史记录,每条记录占据一行,并可选择按照水电费进行升序和降序显示。 8. 编辑业务:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 ... -
oracle数据库经典题目
2011-02-17 15:05:20SYSTEM表空间主要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤销表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据... -
sql简简单单的学习和复习
2020-09-23 20:45:40SELECT * FROM 表名 ORDER BY 排序字段 ASC(升序)|DESC(降序); 特点:只对英文和数字有效,对汉字无效 实例代码: 数据库初始化: # 准备数据 drop database day13; create database day13; use day13; # 执行 ... -
同学的打包代码
2012-06-22 13:48:26给出房间号(有可能不存在),给出该房间中入住的所有学生的姓名,查询结果的排序依据为学生的姓名,可升序或降序排列。 注意:在显示信息时必须合理、美观,譬如适时地清空整个屏幕;假如信息超出一屏则显示必须... -
MySQL系列复习(8)排序和分页(order by、limit)
2020-10-19 15:24:43环境:mysql5.7.30,cmd命令中进⾏演⽰。 代码中被[]包含的表⽰可选,|符号分开的表⽰可选其⼀。 1、排序查询(order by) ...asc|desc表⽰排序的规则,asc:升序,desc:降序,默认为asc; ⽀持多 -
SQL Server——从入门到放弃(2)--INDEX / INSERT / SELECT 练习
2020-03-11 22:47:00上次练习使用的三个基本表格这次依旧要用,但经过一系列的删改,表格早就面目全非了,因此,首先要做...Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。 ... -
SQL语法 (排序、聚合、分组、分页) 多表关系,多表查询
2020-09-24 14:08:19数据库的查询(排序:order by) 默认是按升序排列的,但是升序ASC最好写上,代码可读性! SELECT * FROM 表名 ORDER BY 排序字段 ASC(升序)|DESC(降序); 如果排序列的值相同,通过添加条件,可以再加一个来进行排序 ... -
使用JAVA进行排序
2017-06-25 18:57:00当我们在进行数据库进行查询的时候,当需要按某个字段来进行排序的时候,可以使用SQL语句来完成排序,可以升序,也可以降序。JAVA中的Collections类也可以完成这种操作,SQL的用法和这种集合工具类的操作,可以... -
30天学通C#项目案例开发源码(下) 孔琳俊
2010-03-02 12:56:489.4.5 图书的升序和降序排列 407 9.4.6 浏览图书目录 408 9.4.7 在线阅读图书 409 9.5 公告栏管理模块 410 9.5.1 修改公告栏 410 9.5.2 浏览公告栏 411 9.6 用户留言模块 411 9.6.1 添加留言 411 9.6.2 读取... -
MongoDB分页查询
2019-11-20 15:46:18降序 升序 一共多少条 ObjectId的有序性问题 如果我一定要跳页排序和性能 多字段排序 用索引优化排序 索引Java代码分页 抽取分页代码为公共工具类 使用工具类 把工具类共享到maven仓库参考 前言 传统关系数据库... -
计算机db.bak
2019-08-13 22:54:45贷款银行名称,贷款日期,贷款金额,要求将这两个查询结果合并成一个结果集,并以法人名称、银行名称、贷款日期和贷款金额作为显示列名,结果按贷款日期的升序和贷款金额的降序显示。 15. 查询经济性质为“国营”的... -
实验2答案-sql1.sql
2019-09-21 16:00:44贷款银行名称,贷款日期,贷款金额,要求将这两个查询结果合并成一个结果集,并以法人名称、银行名称、贷款日期和贷款金额作为显示列名,结果按贷款日期的升序和贷款金额的降序显示。 使用实验一建立的学生数据库... -
-
400电话办理选号系统
2012-05-09 17:03:41更直观地将检索出的结果按条件升序或降序排序。 9)自定义价格功能 通过管理后台可以对不同类型的号码设置不同的价格、套餐、优惠幅度及注解说明。 10)数据分享功能 程序内置百度分享功能,技术人员请修改index.... -
Access2003中文版应用基础教程(高清中文PDF)
2011-05-20 15:24:556-1-1 设置升序或降序排序 6-1-2 使用筛选窗口设置排序方式 6-1-3 取消和应用排序设置 6-2 筛选数据记录的技巧 6-2-1 依选取范围筛选数据 6-2-2 按窗体筛选数据 6-2-3 使用或条件的筛选 6-2-4 修改. 取消. ... -
酷啦影视(个人修正QVODCMS点播专家4.0).rar
2019-07-05 08:03:1020.AJAX自定义集数显示状态功能(自己定义降序升序显示功能) 21.列表页多项展示或能(如:按时间,按人气,按推荐) 22.后台设置QVOD缓冲广告,只需输入广告地址便可 23.多资源一键更新系统,每天加片点点完成 ...