C# Linq排序

今天在家看了一下linq,实践了一下书中代码,发现排序和查重的先后顺序太重要了。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace LinqLearning
 7 {
 8     class Program
 9     {
10         private static int[] GenerateLotsOfNumbers(int count)
11         {
12             Random generator = new Random(0);
13             int[] result = new int[count];
14             for (int i = 0; i < count; i++)
15             {
16                 result[i] = generator.Next();
17             }
18             return result;
19         }
20
21         static void Main(string[] args)
22         {
23             int[] numbers = GenerateLotsOfNumbers(12345678);
24
25             var queryResults = from n in numbers
26                                where n < 1000
27                                orderby n descending
28                                select n;
29             Console.WriteLine("查询语法排序结果:");
30             DateTime start = DateTime.Now;
31             foreach (var item in queryResults)
32                 Console.WriteLine(item);
33             Console.WriteLine("消耗时间:{0}",DateTime.Now-start);
34
35             var queryResult = numbers.OrderByDescending(n => n).Where(n => n < 1000);
36             Console.WriteLine("方法排序结果(排序字段在前):");
37             start = DateTime.Now;
38             foreach (var item in queryResult)
39                 Console.WriteLine(item);
40             Console.WriteLine("消耗时间:{0}", DateTime.Now - start);
41
42             var query = numbers.Where(n => n < 1000).OrderByDescending(n => n);
43             Console.WriteLine("方法排序结果(排序字段在后):");
44             start = DateTime.Now;
45             foreach (var item in query)
46                 Console.WriteLine(item);
47             Console.WriteLine("消耗时间:{0}", DateTime.Now - start);
48
49             Console.ReadKey();
50         }
51     }
52 }

时间: 2024-10-17 05:17:54

C# Linq排序的相关文章

Linq排序方式与Lambda排序方式比较以及OrderBy、ThenBy的使用

沿用之前某一篇文章的实体类与EF操作类代码.数据库中增加几条数据 Linq 的排序方式,下面例子是根据RoleId 升序,Name降序 EFContext<Member> efMemberContext = new EFContext<Member>(); var memberSet = efMemberContext.Set<Member>().Include("Role"); var memberList = from m in memberSe

List&lt;T&gt; LINQ 排序

正序排序: List<DataQuestionEntity> dqels = 获取数据; var sorteddeqls = (from a in dqels orderby a.PDate select a).ToList(); 倒序排序: List<DataQuestionEntity> dqels = 获取数据; var sorteddeqls = (from a in dqels orderby a.PDate descending select a).ToList();

linq排序之 根据文本 A-001-002-003 这种类型进行分割排序 空值放于最后

调用 1 List<string> data = new List<string>() { 2 "D-001-001-001","A-001-004-001","A-001-002-001", 3 "A-002-001-001", "F-004-001-001", "A-003-001-001", 4 "A-004-001-004","

Linq排序,获取前5条数据

_dic = _dic.OrderByDescending(x => x.Value).ToDictionary(x=>x.Key,x=>x.Value); var Num = _dic.ToList().Take(5).Select(a => a.Key.ToString()).ToArray(); var Str = string.Join(",", Num);  

LINQ系列:排序操作符

LINQ排序操作符包括:OrderBy.OrderByDescending.ThenBy.ThenByDescending及Reverse. 1. OrderBy 1>. 原型定义 public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> ke

LINQ分页和排序,skip和Take 用法

dbconn.BidRecord.OrderBy(p=>p.bid_id).ToList<BidRecord>().OrderBy(p => p.bid_id).Skip(skip).Take(take).ToList<BidRecord>(); 上面就是分页带排序的方法. 说一下问什么这样做 dbconn 是Modle的对象 BidRecord 是一个实体 P=〉p.bid_id 是排序的条件 OrderBy 是排序(后面是条件)然后要查询所有的,在所有的数据中在查询

使用Linq动态排序

Linq排序很方便,如果能动态创建Expression再排序就更方便了. 正序还是倒序排列 var order = typeof(Enumerable).GetMember(direction == ListSortDirection.Ascending ? "OrderBy" : "OrderByDescending") .First() as MethodInfo;order = order.MakeGenericMethod(typeof(T), typeof

List排序的两种简便方式

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ListSort { class Program { static void Main(string[] args) { List<Customer> listCustomer = new List<Customer>(); listCustomer.Add(new Customer { na

c# 关于字典dictionary 按时间排序

上文中说到sortedlist 排序是键排序,不符合项目要求问题,接着使用字典dictionary 对value 为时间按照升序排序,问题解决.中间涉及到linq的使用.还有其他的写法,但发现下边的写法最直观也容易理解.var dicSort = from objDic in dic orderby objDic.Value descending select objDic; 这种写法最简单,也容易理解dicsort 目标字典,objdic对象应该是映射的无需定义的对象,dic 是你自己定义的字