解决C#中Linq GroupBy 和OrderBy失效的方法
发现问题
在一个数据列表中我用了Linq GroupBy 和OrderBy。 排序在本机正常使用,发到测试后排序死活不对,总以为是程序问题。于是请教了别人有了以下的答案。
问题原因和解决方法
因为服务器装的是英文版操作系统,没有中文包,所以碰见中文排序无法识别,所以使用OrderBy时需要单独处理下。
CultureInfo culture = CultureInfo.GetCultureInfo("zh-cn"); List<TeamDto> teamDtos = teams .GroupBy(x => new { x.TestId, x.TestName }) .Select(g => new TeamDto() { TestID = g.Key.TestId, Test = g.Key.TestName, Teams = g.ToList() }) .OrderBy(t=>t.Test,StringComparer.Create(culture,true)) .ToList();
总结
以上就是这篇文章的全部内容了,希望能对同样遇到这个问题的朋友们有所帮助,如果有疑问大家可以留言交流。
相关推荐
-
C# DataGridView添加新行的2个方法
可以静态绑定数据源,这样就自动为DataGridView控件添加 相应的行.假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件动态添加新行的两种方 法: 方法一: 复制代码 代码如下: int index=this.dataGridView1.Rows.Add();this.dataGridView1.Rows[index].Cells[0].Value = "1"; this.dataGridView1.Rows[inde
-
C# WORD操作实现代码
1.先通过程序生成报表样式的HTML页面,然后修改HTML页面的后缀名为DOC. 2.定制WORD文档的模板文件,在C#中操作WORD模板,生成新的WORD文档. 第一方案简单,只需要改动文件的扩展名就行了,但是也存在了一些问题,譬如生成的WORD文档样式的丢失.这样对于客户来说可能是一个无法通过的方案.第二方案比较复杂,需要调用OFFICE的WORD组件通过C#来操作WORD,进而生成WORD.此方法类似于我们在c#中的后台拼接数据.虽然麻烦,但是能够灵活定制,只不过是操作WORD对象而已.
-
C# Stream 和 byte[] 之间的转换
/* - - - - - - - - - - - - - - - - - - - - - - - - * Stream 和 byte[] 之间的转换 * - - - - - - - - - - - - - - - - - - - - - - - */ /// <summary> /// 将 Stream 转成 byte[] /// </summary> public byte[] StreamToBytes(Stream stream) { byte[] bytes
-
c#实现16进制和字符串之间转换的代码
十六进制字符串与数值类型之间转换(C# 编程指南) 以下示例演示如何执行下列任务: 获取字符串中每个字符的十六进制值. 获取与十六进制字符串中的每个值对应的字符. 将十六进制 string 转换为整型. 将十六进制 string 转换为浮点型. 将字节数组转换为十六进制 string. 示例 此示例输出 string 中的每个字符的十六进制值.首先,它将 string 分析为字符数组,然后对每个字符调用 ToInt32(Char) 以获取相应的数字值.最后,在 string 中将数字的格式设置为
-
C#入门教程之ListBox控件使用方法
ListBox控件的使用: 1)控件属性 Items SelectedItems SelectioModes 2)数据绑定 DataSoure DisplayMember ValueMenber 3)实例 下面开始一一说明上面的ListBox控件的使用. 首先来说控件的属性, (1)Items:使用此属性获取列表控件项的属性.此属性可用于确定列表控件中的选定项.添加items时既可以设计时静态添加,也可以在代码中动态添加.如果不想显示设计时添加的items,可以在代码中添加this.listBo
-
C#几种截取字符串的方法小结
1.根据单个分隔字符用split截取 例如 复制代码 代码如下: string st="GT123_1"; string[] sArray=st.split("_"); 即可得到sArray[0]="GT123",sArray[1]="1"; 2.利用多个字符来分隔字符串 例如 复制代码 代码如下: string str = "GTAZB_JiangjBen_123";string[] sArray = s
-
C#时间格式化(Datetime)用法详解
Datetime.ToString(String, IFormatProvider) 参数format格式详细用法: 格式字符 关联属性/说明 d ShortDatePattern D LongDatePattern f 完整日期和时间(长日期和短时间) F FullDateTimePattern(长日期和长时间) g 常规(短日期和短时间) G 常规(短日期和长时间) m.M MonthDayPattern r.R RFC1123Pattern s 使用当地时间的 SortableDateTi
-
C#连接MySql数据库的方法
1.要连接MySql数据库必须首先下载MySql官方的连接.net的文件,文件下载地址为http://dev.mysql.com/downloads/connector/net/6.6.html#downloads ,下载平台选择.Net&Mono,下载ZIP免安装版.2.解压缩刚才下载的mysql-connector-net-6.6.6-noinstall.zip文件,里面有几个版本选择,在这里我选V4, 选中这几个文件,然后添加到C#项目的引用中,然后就可以编写程序进行数据库的操作了. 3.
-
C# linq查询之动态OrderBy用法实例
本文实例讲述了C# linq查询之动态OrderBy用法.分享给大家供大家参考.具体分析如下: groupList是原始数据集合,List<T> sortOrder是排序类型,desc 或者asc sortName是排序属性名称 1.使用反射. private static object GetPropertyValue(object obj, string property) { System.Reflection.PropertyInfo propertyInfo = obj.GetTyp
-
C#中HttpWebRequest的用法详解
本文实例讲述了C#中HttpWebRequest的用法.分享给大家供大家参考.具体如下: HttpWebRequest类主要利用HTTP 协议和服务器交互,通常是通过 GET 和 POST 两种方式来对数据进行获取和提交.下面对这两种方式进行一下说明: GET 方式: GET 方式通过在网络地址附加参数来完成数据的提交,比如在地址 http://www.jb51.net/?hl=zh-CN 中,前面部分 http://www.jb51.net表示数据提交的网址,后面部分 hl=zh-CN 表示附
随机推荐
- 正则表达式验证用户名、密码、手机号码、身份证(推荐)
- 编写高质量代码改善C#程序——使用泛型集合代替非泛型集合(建议20)
- vue2中filter()的实现代码
- IOS 开发之查看大图的实现代码
- 把多个JavaScript函数绑定到onload事件处理函数上的方法
- js实现页面打印功能实例代码(附去页眉页脚功能代码)
- asp.net中rdlc 合并行的方法
- php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
- PHP实现简单ajax Loading加载功能示例
- 不错的dedecms修改实用集锦第1/2页
- json跨域调用python的方法详解
- PHP的SQL注入实现(测试代码安全不错)
- 原生JS和jQuery操作DOM对比总结
- Javascript的无new构建实例详解
- Node.js Streams文件读写操作详解
- python通过pil为png图片填充上背景颜色的方法
- TrieTree服务-组件构成及其作用介绍
- 简单实现限制uploadify上传个数
- php获取网卡的MAC地址支持WIN/LINUX系统
- Java 8 中的 10 个特性总结及详解