社区
LINQ
帖子详情
如何将这个DataTable经LinQ转换成这样
清水鱼1984
2018-10-15 02:11:06
姓名 语文 数学 英语
张三 80 85 90
上表转换为下表
姓名 科目 成绩
张三 语文 80
张三 数学 85
张三 英语 90
求LinQ语句
...全文
206
5
打赏
收藏
如何将这个DataTable经LinQ转换成这样
姓名 语文 数学 英语 张三 80 85 90 上表转换为下表 姓名 科目 成绩 张三 语文 80 张三 数学 85 张三 英语 90 求LinQ语句
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
清水鱼1984
2018-10-15
打赏
举报
回复
DataTable GetTable()
{
DataTable dt = new DataTable();
DataColumn col1 = new DataColumn("张三", typeof(int));
DataColumn col2 = new DataColumn("李四", typeof(int));
DataColumn col3 = new DataColumn("王五", typeof(int));
DataColumn col4 = new DataColumn("刘六", typeof(int));
dt.Columns.AddRange(new DataColumn[]{col1,col2,col3,col4});
dt.Rows.Add(18,19,20,21);
return dt;
}
private void simpleButton1_Click(object sender, EventArgs e)
{
DataTable dt = gridControl1.DataSource as DataTable;
DataTable newdt = new DataTable();
DataColumn col = new DataColumn("Name",typeof(string));
DataColumn col1= new DataColumn("Age", typeof(int));
newdt.Columns.AddRange(new DataColumn[]{col,col1} );
foreach (DataColumn cols in dt.Columns)
{
string name = cols.ColumnName;
foreach (DataRow row in dt.Rows)
{
int age = Convert.ToInt32(row[name]);
newdt.Rows.Add(name,age);
}
}
gridControl2.DataSource = newdt;
}
清水鱼1984
2018-10-15
打赏
举报
回复
楸心,我厂24小时工作,转换数据后生成Joson样式上传给客户!
其实我想,select * from table where starttime between xx and xx 这样的话会小于一秒,然后基于这个表拆分成以上的格式
如果运用上面的语句,严重影响其他操作用户,我试下Table吧
正怒月神
2018-10-15
打赏
举报
回复
700W的数据,放到哪里都是一样慢。 和linq没有关系。 我认为你可以做一个计划任务来跑这个行转列的脚本,每天都计算一遍数据,放到新表里去。
清水鱼1984
2018-10-15
打赏
举报
回复
目前数据库使用SQL语句操作,select * from (select 张三 from table union all select 李四 from table )的方式,但是数据量去到700W了,使用一次达到14秒,想使用LinQ能否转换
娃都会打酱油了
2018-10-15
打赏
举报
回复
行列转换还是用datatable比较好,linq没法做到
LINQ
实战 7/11
清晰完整PDF版本,是我从网上买来的 共 60MB,分为11个分卷 在 CSDN 上只有我整个是清晰完整的
LINQ
实战 7/11
LINQ
实战 .NET 2010 SQL 出版社:人民邮电出版社 ISBN:9787115208514 原价:65元 作者:(法)马格里,(美)艾歇特,(美)伍利 著,陈黎夫 译 出版日期:2009-8-1 字数:668000 页码:416 内容提要 -------------------------------------------------------------------------------- 作为.NET上连
LINQ
实战 1/11
清晰完整PDF版本,是我从网上买来的 共 60MB,分为11个分卷 在 CSDN 上只有我整个是清晰完整的
LINQ
实战 1/11
LINQ
实战 .NET 2010 SQL 出版社:人民邮电出版社 ISBN:9787115208514 原价:65元 作者:(法)马格里,(美)艾歇特,(美)伍利 著,陈黎夫 译 出版日期:2009-8-1 字数:668000 页码:416 内容提要 -------------------------------------------------------------------------------- 作为.NET上连接编程语言和数据库、内存对象、XML等各种类型数据之间的桥梁,
LINQ
引入了一种处理数据的全新理念,将查询无缝集成至开发语言之上。本书第一部分介绍了
LINQ
技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了
LINQ
的三大主要功能
LINQ
to Objects、
LINQ
to SQL、
LINQ
to XML,第五部分研究了
LINQ
的可扩展性、在应用程序中使用各种
LINQ
功能的方法以及
LINQ
to DataSet。 本书适合于使用C#和VB.NET的软件开发者。 编辑推荐 -------------------------------------------------------------------------------- 微软MVP呕心沥血之作,
LINQ
圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。 本书作者是
LINQ
社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。 ——Matt Warren,微软主架构师,
LINQ
之父
LINQ
方面的杰作!深入、全面、客观,令人欲罢不能。强烈推荐! ——Patrick Smacchia,微软MVP,《C#和.NET 2.0 实战》作者 目录 -------------------------------------------------------------------------------- 第一部分 从这里开始 第1章
LINQ
简介 2 1.1
LINQ
是什么 2 1.1.1 概览 3 1.1.2
LINQ
的功能 3 1.1.3 作为语言扩展的
LINQ
4 1.2 为什么需要
LINQ
6 1.2.1 常见问题 6 1.2.2 解决理念上的失调 8 1.2.3
LINQ
给出解决方案 12 1.3
LINQ
的设计目标及起源 13 1.3.1
LINQ
项目的设计目标 13 1.3.2 一点历史 14 1.4
LINQ
to Objects初步:查询内存中的集合 15 1.4.1 先决条件 15 1.4.2 Hello
LINQ
to Objects 17 1.5
LINQ
to XML初步:查询XML文档 20 1.5.1 为什么需要
LINQ
to XML 20 1.5.2 Hello
LINQ
to XML 22 1.6
LINQ
to SQL初步:查询关系型数据库 26 1.6.1
LINQ
to SQL功能概览 26 1.6.2 Hello
LINQ
to SQL 26 1.6.3 进一步了解
LINQ
to SQL 30 1.7 小结 30 第2章 C#和VB语言的增强特性 31 2.1 新语言的增强特性一瞥 31 2.1.1 列出当前正在运行的所有进程 32 2.1.2 将返回结果封装成类 33 2.2 隐式类型局部变量 34 2.2.1 语法 35 2.2.2 使用隐式类型局部变量改进实例程序 35 2.3 对象和集合的初始化器 37 2.3.1 引入对象初始化器的动机 37 2.3.2 集合初始化器 38 2.3.3 用对象初始化器改进实例程序 39 2.4 Lambda表达式 40 2.4.1 委托回顾 40 2.4.2 匿名方法 42 2.4.3 Lambda表达式介绍 42 2.5 扩展方法 47 2.5.1 创建扩展方法的示例 47 2.5.2 更多使用
LINQ
标准查询操作符的例子 50 2.5.3 将扩展方法引入到实例程序中 51 2.5.4 注意事项 52 2.6 匿名类型 54 2.6.1 使用匿名类型组合数据 55 2.6.2 没有名字的类型也是类型 55 2.6.3 使用匿名类型改进实例程序 56 2.6.4 匿名类型的限制 57 2.7 小结 58 第3章
LINQ
构建块 61 3.1
LINQ
对.NET的扩展 61 3.1.1 语言扩展回顾 61 3.1.2 构成
LINQ
基础的核心元素 62 3.2 序列 63 3.2.1 IEnumerableT接口 63 3.2.2 迭代器回顾 64 3.2.3 延迟查询执行 66 3.3 查询操作符 69 3.3.1 查询操作符是什么 69 3.3.2 标准查询操作符 71 3.4 查询表达式 72 3.4.1 查询表达式是什么 72 3.4.2 编写查询表达式 73 3.4.3 标准查询操作符与查询表达式的关系 75 3.4.4 限制 76 3.5 表达式树 78 3.5.1 Lambda表达式回顾 78 3.5.2 表达式树是什么 78 3.5.3 IQueryable,另一种实现延迟查询执行的方法 81 3.6
LINQ
的程序集以及命名空间 81 3.7 小结 83 第二部分 查询内存中的对象 第4章 熟悉
LINQ
to Objects 86 4.1 实例程序简介 86 4.1.1 程序目标 86 4.1.2 程序功能 87 4.1.3 业务逻辑实体 87 4.1.4 数据库架构 87 4.1.5 示例数据 89 4.2 用
LINQ
操作内存中的集合 90 4.2.1 能够查询什么 90 4.2.2 支持的操作 94 4.3 在ASP.NET和Windows Forms中使用
LINQ
95 4.3.1 Web应用程序中的数据绑定 95 4.3.2 Windows Forms应用程序中的数据绑定 100 4.4 常用的标准查询操作符 103 4.4.1 约束操作符Where 104 4.4.2 投影操作符 105 4.4.3 Distinct操作符 107 4.4.4 转换操作符 108 4.4.5 聚合操作符 109 4.5 用不同的方式显示内存中的集合 110 4.5.1 排序 110 4.5.2 嵌套查询 111 4.5.3 分组 113 4.5.4 使用连接 114 4.5.5 分区 117 4.6 小结 121 第5章 超越基本的内存数据查询 122 5.1 常见使用场景 122 5.1.1 查询非泛型集合 123 5.1.2 按照多个条件分组 125 5.1.3 动态查询 127 5.1.4
LINQ
to Text Files 135 5.2 设计模式 137 5.2.1 函数式创建模式 138 5.2.2 ForEach模式 140 5.3 性能分析 142 5.3.1 选择恰当的流操作方式 142 5.3.2 当心立即执行 144 5.3.3
LINQ
to Objects会降低代码的性能吗 146 5.3.4 使用
LINQ
to Objects的代价 149 5.3.5 性能和简洁:鱼和熊掌不可兼得吗 151 5.4 小结 152 第三部分 查询关系型数据 第6章
LINQ
to SQL入门 156 6.1 走入
LINQ
to SQL 157 6.1.1 创建对象映射 159 6.1.2 设定DataContext 161 6.2 通过
LINQ
to SQL读取数据 161 6.3 继续改进查询 165 6.3.1 过滤 165 6.3.2 排序和分组 167 6.3.3 聚集 168 6.3.4 连接 169 6.4 操作有层级关系的对象 171 6.5 数据加载的时机以及为何要关心这些 174 6.5.1 延迟加载 174 6.5.2 立即加载详细信息 175 6.6 更新数据 177 6.7 小结 179 第7章 揭开
LINQ
to SQL的本质 180 7.1 对象与关系数据的映射 180 7.1.1 通过在类中添加属性 181 7.1.2 使用外部XML文件实现映射 185 7.1.3 使用SqlMetal工具 186 7.1.4
LINQ
to SQL设计器 188 7.2 将查询表达式转换为SQL 190 7.2.1 IQueryable接口 190 7.2.2 表达式树 191 7.3 业务实体的生命周期 193 7.3.1 跟踪变化 195 7.3.2 提交变化 196 7.3.3 操作离线数据 198 7.4 小结 200 第8章
LINQ
to SQL高级特性 201 8.1 处理并发修改 201 8.1.1 悲观式并发 201 8.1.2 乐观式并发 202 8.1.3 处理并发异常 204 8.1.4 使用事务解决冲突 207 8.2 高级的数据库功能 208 8.2.1 使用SQL语句直接得到结果对象 209 8.2.2 使用存储过程 210 8.2.3 用户自定义函数 217 8.3 改进业务逻辑层 220 8.3.1 预编译的查询 220 8.3.2 使用部分类实现自定义业务逻辑 221 8.3.3 使用部分方法 223 8.3.4 使用对象继承 225 8.4
LINQ
to Entities简介 229 8.5 小结 231 第四部分 操作XML 第9章
LINQ
to XML入门 234 9.1 什么是XML API 234 9.2 为什么需要另外一种XML编程API 235 9.3
LINQ
to XML设计原则 236 9.3.1 核心概念:函数式创建 238 9.3.2 核心概念:上下文无关的XML创建过程 238 9.3.3 核心概念:简化了的名称 239 9.4
LINQ
to XML中相关类的继承体系 241 9.5 在
LINQ
中操作XML 243 9.5.1 加载XML 243 9.5.2 解析XML 245 9.5.3 创建XML 246 9.5.4 使用Visual Basic XML字面量创建XML 249 9.5.5 创建XML文档 251 9.5.6 向XML中添加内容 254 9.5.7 从XML中移除内容 255 9.5.8 更新XML的内容 256 9.5.9 操作属性 258 9.5.10 保存XML 258 9.6 小结 259 第10章 使用
LINQ
to XML查询并转换XML 260 10.1
LINQ
to XML轴方法 261 10.1.1 Element 262 10.1.2 Attribute 263 10.1.3 Elements 264 10.1.4 Descendants 264 10.1.5 Ancestors 267 10.1.6 ElementsAfterSelf、NodesAfterSelf、ElementsBeforeSelf和NodesBeforeSelf方法 268 10.1.7 Visual Basic的XML轴属性 269 10.2 标准查询操作符 271 10.2.1 使用Select进行投影 273 10.2.2 使用Where实现过滤 274 10.2.3 排序和分组 275 10.3 使用XPath查询
LINQ
to XML对象 278 10.4 转换XML 279 10.4.1
LINQ
to XML转换 279 10.4.2 使用XSLT转换
LINQ
to XML对象 282 10.5 小结 284 第11章
LINQ
to XML常见场景 285 11.1 根据XML构建对象 285 11.1.1 目标 286 11.1.2 实现 287 11.2 根据对象创建XML 290 11.2.1 目标 290 11.2.2 实现 291 11.3 根据数据库中的数据创建XML 295 11.3.1 目标 296 11.3.2 实现 297 11.4 过滤并混合从数据库以及XML中得到的数据 301 11.4.1 目标 302 11.4.2 实现 302 11.5 读取XML并更新数据库 306 11.5.1 目标 306 11.5.2 实现 307 11.6 将文本文件转换为XML 319 11.6.1 目标 319 11.6.2 实现 320 11.7 小结 322 第五部分
LINQ
无处不在 第12章 扩展
LINQ
324 12.1 探寻
LINQ
的扩展机制 324 12.1.1
LINQ
各个特性是如何实现的 325 12.1.2 自定义
LINQ
扩展能够实现什么 326 12.2 创建自定义查询操作符 327 12.2.1 改进标准查询操作符 327 12.2.2 辅助或领域相关的查询操作符 330 12.3 基本查询操作符的自定义实现 334 12.3.1 回顾查询翻译机制 334 12.3.2 查询表达式模式的规范 335 12.3.3 示例1:跟踪标准查询操作符的执行过程 337 12.3.4 限制:查询表达式冲突 338 12.3.5 示例2:非泛型的、领域相关的操作符 340 12.3.6 示例3:非序列的查询操作符 342 12.4 查询Web服务:
LINQ
to Amazon 343 12.4.1
LINQ
to Amazon介绍 344 12.4.2 需求 345 12.4.3 实现 346 12.5 IQueryable和IQueryProvider:
LINQ
to Amazon高级版本 352 12.5.1 IQueryable和IQueryProvider接口 353 12.5.2 实现 356 12.5.3 究竟发生了什么 357 12.6 小结 358 第13章 应用程序各层中的
LINQ
359 13.1
Linq
Books应用程序概览 359 13.1.1 功能 359 13.1.2 程序UI概览 360 13.1.3 数据模型 362 13.2
LINQ
to SQL及数据访问层 362 13.2.1 回顾传统的三层架构 362 13.2.2 用专门的数据访问层还是
LINQ
to SQL 364 13.2.3
Linq
Books中对
LINQ
to SQL的使用 368 13.3
LINQ
to XML的使用 374 13.3.1 从Amazon中导入数据 374 13.3.2 生成RSS 376 13.4
LINQ
to DataSet的使用 377 13.5 使用
LINQ
to Objects 380 13.6 可扩展性 380 13.6.1 自定义查询操作符 380 13.6.2 创建并使用自定义
LINQ
提供器 381 13.7 展望未来 381 13.7.1 自定义
LINQ
功能 382 13.7.2
LINQ
to XSD:强类型的
LINQ
to XML 382 13.7.3 P
LINQ
:支持并行计算的
LINQ
383 13.7.4
LINQ
to Entities,ADO.NET Entity Framework的
LINQ
接口 383 13.8 小结 384 第14章 使用
LINQ
操作DataSet 385 14.1
LINQ
to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能 386 14.2.2 DataSet是什么 387 14.2.3 Visual Studio 2008和.NET 3.5为支持
LINQ
to DataSet进行的改进 389 14.3 查询弱类型DataSet 390 14.3.1 为DataSet加载数据 390 14.3.2 不使用
LINQ
查询DataSet 394 14.3.3 使用
LINQ
to DataSet查询弱类型DataSet 395 14.4 查询强类型DataSet 399 14.4.1 生成强类型的DataSet 400 14.4.2 为强类型DataSet加载数据 402 14.4.3 使用
LINQ
to DataSet查询强类型DataSet 404 14.5 将
LINQ
to DataSet查询结果绑定至UI控件 406 14.5.1 使用CopyTo
DataTable
将
LINQ
to DataSet查询结果复制到
DataTable
406 14.5.2 使用AsDataView实现双向数据绑定 408 14.6 在
LINQ
to DataSet中使用查询操作符 410 14.6.1 用于DataRow的FieldT和SetFieldT操作符 410 14.6.2 集合操作符以及用DataRowComparer比较DataRow 411 14.7 小结 412 附录 标准查询操作符 414 作者介绍 -------------------------------------------------------------------------------- 马格里(Fabrice Marguerie),微软C# MVP,资深.NET软件架构师,
LINQ
社区专家。
PowerBI系列之DAX函数专题
本课程是PowerBI系列课程之DAX函数专题讲解,包含以下内容 1. DAX函数基础知识什么是DAX函数数学函数:ABS、DIVIDE、MOD、RAND、ROUND、FIXED等日期和时间函数: CALENDAR、CALENDARAUTO、MONTH、YEAR、DATE、DT等信息函数:USERNAME、USERPRINCIPALNAME、HASONEFILTER、HASONEVALUE、ISFILTERED、ISCROSSFILTERED、ISINSCOPE、ISBLANK、SELECTEDMEASURE、SELECTEDMEASURENAME等逻辑函数:AND、OR、IF、IFERROR、SWITCH、TRUE、FALSE、COALESCE(官方文档含糊不清-结合实例)等关系函数:CROSSFILTER、RELATED、RELATEDTABLE等筛选器函数:FILTER、CALCULATE、ALL、ALLEXCEPT、ALLSELECTED、EARLIER、KEEPFILTERS、REMOVEFILTERS、SELECTEDVALUE、LOOKUPVALUE等父子函数:PATH、PATHCONTAINS、PATHITEM、PATHLENGTH等统计函数:AVERAGE、COUNT、MAX、MIN、SUM等迭代统计函数:AVERAGEX、COUNTX、MAXX、MINX、SUMX、RANKX等表函数: FILTERS 、ADDCOLUMNS、 SELECTCOLUMNS、 CROSSJOIN、 EXCEPT、 GENERATE、 GROUPBY、 SUMMARIZE、 SUMMARIZECOLUMNS、 TOPN、 TREATAS、 UNION、 VALUES、DISTINCT、
DATATABLE
、NATUALINNERJOIN、NATRUALLEFTOUTERJOIN等文本函数: EXACT、MID、 FIND、 LEN、 REPT、 LOWER、 UPPER、 UNICHAR等时间智能函数:DATEADD、DATESMTD、FIRSTDATE、LASTDATE、SAMEPERIODLASTYEAR等财务函数:2020.7之后发布的,和Excel中财务函数相似,网页和demo pbix简单介绍其他函数:BLANK、ERROR、IFERROR等 DAX函数初体验:Max、Sum、Divide、if、Values等值函数表函数以及表和列的概念DAX函数术语、语法、运算符DAX运算符和引擎中字母大小写问题DAX编程注释和快捷键DAX与Excel函数的共同点和区别(PPT)DAX、xmSQL与SQL表达式的区别(PPT)DAX函数的自学途径 2. PowerBI中数据建模知识维度建模关系传递和交叉筛选器方向-理解表关系(1v1, 1vM, Mv1,MvM)两个方向上应用安全筛选器关闭关系自动检测新建计算列新建度量值新建计算表:辅助表(五种方式)、日历表数据类型讲解数据格式控制:%、$、千位分隔符、小数位、日期格式Format函数自定义数据格式Convert函数做数据类型转换解决中文数字单位 万 的显示问题Date和DT函数定义固定日期值显示和隐藏列DAX代码分析器阅读DAX表达式方法:从上至下、由内到外(注意Calculate的计算顺序)调试DAX表达式方法:分布输出或VAR输出3. DAX函数原理 Vertipaq列式数据库原理理解度量值和计算列理解行上下文和筛选上下文:Calculate示意图行上下文中使用VAR替代EARLIERVAR变量在定义时的上下文中计算VAR变量是采用惰性计算(使用时计算)理解扩展表和RELATED函数理解数据沿袭Lineage 4. 开始感知DAX函数的强大DAX函数实现特殊符号的使用DAX函数实现切片器默认当前月或天DAX函数使切片器默认代表无任何选择DAX函数使切片器仅显示有数据的选项DAX函数使切片器反向筛选和计算DAX函数使切片器之间取并集DAX函数使关系中多端的切片器筛选一端的切片器 DAX函数实现年月共同决定数据排序DAX函数实现动态图表标题DAX函数实现动态图表配色和图标DAX函数实现动态纵坐标DAX函数实现动态横坐标5. 理解重点DAX函数重中之重FILTER 和 CALCULATE和CALCULATETABLE详解调节器REMOVEFILTERS和ALL、ALLEXCEPT函数调节器ALL、ALLSELECTED和ISINSCOPE占比分析调节器AllSELECTED和KEEPFILTERS的比较调节器USERELATIONSHIP激活关系调节器TREATAS动态建立关系调节器CROSSFILTER改变筛选器方向重点之ISFILTERED和ISCROSSFILTERED重点之HASONEVALUE和ISINSCOPE的区别重点之表函数SELECTEDCOLUMNS和ADDCOLUMNS重点之表函数NATUALINNERJOIN和NATRUALLEFTOUTERJOIN重点之表函数FILTERS和VALUES比较重点之VALUES和DISTINCT的区别重点之分组函数SUMMARIZECOLUMNS详解重点之函数LOOKUPVALUE vs RELATED vs VLOOKUP 重点之集合函数UNION、INTERSECT、EXCEPT重点之集合函数CROSSJOIN和GENERATE 笛卡尔积重点之值合并、列合并、表合并CONCATENATEX重点之BLANK行产生的原因和BLANK相关函数重点之COALESCE函数处理空重点之FIRSTNOBLANK和FIRSTNOBLANKVALUE函数重点之使用VAR变量表中的列重点之Error和IfError函数6. 实际案例-日期时间和时间智能相关关键点-日期表和事实表关联问题时间智能-同比环比分析时间智能-累计聚合、滚动聚合、移动平均时间智能-期初期末库存分析日期分析-计算任意所选月份的环比日期分析-周的同比环比和周聚合日期分析-指定月份的同比环比和季度环比日期分析-计算季末或季末月份的数据日期分析-趋势图中根据最近月份取TopN日期分析-动态指定某个日期区间分析日期分析-动态任意区间段做数据对比日期分析-实现两个日期列的范围筛选日期分析-按工作日计算日期差日期分析-计算最近两次购买日期差日期分析-根据历史数据做销售预测日期时间函数和时间智能函数使用总结7. 实际案例-DAX函数进阶进阶-解决列排序对计算的影响进阶-实现切片器筛选之间的OR逻辑进阶-矩阵Matrix中高亮显示最大值最小值进阶-DAX列转行 vs 矩阵列转行和逆透视进阶-非日期类型的累计聚合进阶-排名逻辑的4种实现-RANKX详解进阶-分组内排名的实现和理解迭代函数进阶-TopN/BottomN和Others的实现进阶-TopN中实现动态指标进阶-TopN中实现N的动态进阶-分组内动态TopN和Others 进阶-商品折上折-迭代函数SUMX详解 进阶-分析客户购买行为进阶-找出无购买行为的客户进阶-客户购买商品关联度分析 进阶-新客户分析进阶-流失客户分析进阶-回流客户分析进阶-客户购买频次和区间分析进阶-RFM客户价值分析进阶-帕累托分析进阶-盈亏平衡分析报表性能优化思路(PPT)
将
DataTable
转换成
Listlt;Tgt;实现思路及示例代码
前几天在工作中,遇到一个问题:需要将查询出来的
DataTable
数据源,
转换成
List
的泛型集合(已知T类型)。第一反应,我想肯定要用到“泛型”(这不是废话吗?都说了要
转换成
List
泛型集合了),而且还要用到“反射”相关的。呵呵。很快,我就做出了一个小实例,测试通过。下面我将代码贴出来,分享给大家。代码都有详细的注释,读者朋友可以很清晰的看懂我的思路。 首先,这是我写的一个通用转换类,完成此类操作。也是实现这个功能最核心的部分: 代码如下:using System;using System.Collections.Generic;using System.
Linq
;using Sy
LINQ
实战 3/11
清晰完整PDF版本,是我从网上买来的 共 60MB,分为11个分卷 在 CSDN 上只有我整个是清晰完整的
LINQ
实战 3/11
LINQ
实战 .NET 2010 SQL 出版社:人民邮电出版社 ISBN:9787115208514 原价:65元 作者:(法)马格里,(美)艾歇特,(美)伍利 著,陈黎夫 译 出版日期:2009-8-1 字数:668000 页码:416 内容提要 -------------------------------------------------------------------------------- 作为.NET上连接编程语言和数据库、内存对象、XML等各种类型数据之间的桥梁,
LINQ
引入了一种处理数据的全新理念,将查询无缝集成至开发语言之上。本书第一部分介绍了
LINQ
技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了
LINQ
的三大主要功能
LINQ
to Objects、
LINQ
to SQL、
LINQ
to XML,第五部分研究了
LINQ
的可扩展性、在应用程序中使用各种
LINQ
功能的方法以及
LINQ
to DataSet。 本书适合于使用C#和VB.NET的软件开发者。 编辑推荐 -------------------------------------------------------------------------------- 微软MVP呕心沥血之作,
LINQ
圣经,深入全面,引人入胜,丰富实例,兼顾C#和VB.NET语言。 本书作者是
LINQ
社区中的重要成员,他们在书中展示了这一技术的精髓……快去享受这一盛宴吧。 ——Matt Warren,微软主架构师,
LINQ
之父
LINQ
方面的杰作!深入、全面、客观,令人欲罢不能。强烈推荐! ——Patrick Smacchia,微软MVP,《C#和.NET 2.0 实战》作者 目录 -------------------------------------------------------------------------------- 第一部分 从这里开始 第1章
LINQ
简介 2 1.1
LINQ
是什么 2 1.1.1 概览 3 1.1.2
LINQ
的功能 3 1.1.3 作为语言扩展的
LINQ
4 1.2 为什么需要
LINQ
6 1.2.1 常见问题 6 1.2.2 解决理念上的失调 8 1.2.3
LINQ
给出解决方案 12 1.3
LINQ
的设计目标及起源 13 1.3.1
LINQ
项目的设计目标 13 1.3.2 一点历史 14 1.4
LINQ
to Objects初步:查询内存中的集合 15 1.4.1 先决条件 15 1.4.2 Hello
LINQ
to Objects 17 1.5
LINQ
to XML初步:查询XML文档 20 1.5.1 为什么需要
LINQ
to XML 20 1.5.2 Hello
LINQ
to XML 22 1.6
LINQ
to SQL初步:查询关系型数据库 26 1.6.1
LINQ
to SQL功能概览 26 1.6.2 Hello
LINQ
to SQL 26 1.6.3 进一步了解
LINQ
to SQL 30 1.7 小结 30 第2章 C#和VB语言的增强特性 31 2.1 新语言的增强特性一瞥 31 2.1.1 列出当前正在运行的所有进程 32 2.1.2 将返回结果封装成类 33 2.2 隐式类型局部变量 34 2.2.1 语法 35 2.2.2 使用隐式类型局部变量改进实例程序 35 2.3 对象和集合的初始化器 37 2.3.1 引入对象初始化器的动机 37 2.3.2 集合初始化器 38 2.3.3 用对象初始化器改进实例程序 39 2.4 Lambda表达式 40 2.4.1 委托回顾 40 2.4.2 匿名方法 42 2.4.3 Lambda表达式介绍 42 2.5 扩展方法 47 2.5.1 创建扩展方法的示例 47 2.5.2 更多使用
LINQ
标准查询操作符的例子 50 2.5.3 将扩展方法引入到实例程序中 51 2.5.4 注意事项 52 2.6 匿名类型 54 2.6.1 使用匿名类型组合数据 55 2.6.2 没有名字的类型也是类型 55 2.6.3 使用匿名类型改进实例程序 56 2.6.4 匿名类型的限制 57 2.7 小结 58 第3章
LINQ
构建块 61 3.1
LINQ
对.NET的扩展 61 3.1.1 语言扩展回顾 61 3.1.2 构成
LINQ
基础的核心元素 62 3.2 序列 63 3.2.1 IEnumerableT接口 63 3.2.2 迭代器回顾 64 3.2.3 延迟查询执行 66 3.3 查询操作符 69 3.3.1 查询操作符是什么 69 3.3.2 标准查询操作符 71 3.4 查询表达式 72 3.4.1 查询表达式是什么 72 3.4.2 编写查询表达式 73 3.4.3 标准查询操作符与查询表达式的关系 75 3.4.4 限制 76 3.5 表达式树 78 3.5.1 Lambda表达式回顾 78 3.5.2 表达式树是什么 78 3.5.3 IQueryable,另一种实现延迟查询执行的方法 81 3.6
LINQ
的程序集以及命名空间 81 3.7 小结 83 第二部分 查询内存中的对象 第4章 熟悉
LINQ
to Objects 86 4.1 实例程序简介 86 4.1.1 程序目标 86 4.1.2 程序功能 87 4.1.3 业务逻辑实体 87 4.1.4 数据库架构 87 4.1.5 示例数据 89 4.2 用
LINQ
操作内存中的集合 90 4.2.1 能够查询什么 90 4.2.2 支持的操作 94 4.3 在ASP.NET和Windows Forms中使用
LINQ
95 4.3.1 Web应用程序中的数据绑定 95 4.3.2 Windows Forms应用程序中的数据绑定 100 4.4 常用的标准查询操作符 103 4.4.1 约束操作符Where 104 4.4.2 投影操作符 105 4.4.3 Distinct操作符 107 4.4.4 转换操作符 108 4.4.5 聚合操作符 109 4.5 用不同的方式显示内存中的集合 110 4.5.1 排序 110 4.5.2 嵌套查询 111 4.5.3 分组 113 4.5.4 使用连接 114 4.5.5 分区 117 4.6 小结 121 第5章 超越基本的内存数据查询 122 5.1 常见使用场景 122 5.1.1 查询非泛型集合 123 5.1.2 按照多个条件分组 125 5.1.3 动态查询 127 5.1.4
LINQ
to Text Files 135 5.2 设计模式 137 5.2.1 函数式创建模式 138 5.2.2 ForEach模式 140 5.3 性能分析 142 5.3.1 选择恰当的流操作方式 142 5.3.2 当心立即执行 144 5.3.3
LINQ
to Objects会降低代码的性能吗 146 5.3.4 使用
LINQ
to Objects的代价 149 5.3.5 性能和简洁:鱼和熊掌不可兼得吗 151 5.4 小结 152 第三部分 查询关系型数据 第6章
LINQ
to SQL入门 156 6.1 走入
LINQ
to SQL 157 6.1.1 创建对象映射 159 6.1.2 设定DataContext 161 6.2 通过
LINQ
to SQL读取数据 161 6.3 继续改进查询 165 6.3.1 过滤 165 6.3.2 排序和分组 167 6.3.3 聚集 168 6.3.4 连接 169 6.4 操作有层级关系的对象 171 6.5 数据加载的时机以及为何要关心这些 174 6.5.1 延迟加载 174 6.5.2 立即加载详细信息 175 6.6 更新数据 177 6.7 小结 179 第7章 揭开
LINQ
to SQL的本质 180 7.1 对象与关系数据的映射 180 7.1.1 通过在类中添加属性 181 7.1.2 使用外部XML文件实现映射 185 7.1.3 使用SqlMetal工具 186 7.1.4
LINQ
to SQL设计器 188 7.2 将查询表达式转换为SQL 190 7.2.1 IQueryable接口 190 7.2.2 表达式树 191 7.3 业务实体的生命周期 193 7.3.1 跟踪变化 195 7.3.2 提交变化 196 7.3.3 操作离线数据 198 7.4 小结 200 第8章
LINQ
to SQL高级特性 201 8.1 处理并发修改 201 8.1.1 悲观式并发 201 8.1.2 乐观式并发 202 8.1.3 处理并发异常 204 8.1.4 使用事务解决冲突 207 8.2 高级的数据库功能 208 8.2.1 使用SQL语句直接得到结果对象 209 8.2.2 使用存储过程 210 8.2.3 用户自定义函数 217 8.3 改进业务逻辑层 220 8.3.1 预编译的查询 220 8.3.2 使用部分类实现自定义业务逻辑 221 8.3.3 使用部分方法 223 8.3.4 使用对象继承 225 8.4
LINQ
to Entities简介 229 8.5 小结 231 第四部分 操作XML 第9章
LINQ
to XML入门 234 9.1 什么是XML API 234 9.2 为什么需要另外一种XML编程API 235 9.3
LINQ
to XML设计原则 236 9.3.1 核心概念:函数式创建 238 9.3.2 核心概念:上下文无关的XML创建过程 238 9.3.3 核心概念:简化了的名称 239 9.4
LINQ
to XML中相关类的继承体系 241 9.5 在
LINQ
中操作XML 243 9.5.1 加载XML 243 9.5.2 解析XML 245 9.5.3 创建XML 246 9.5.4 使用Visual Basic XML字面量创建XML 249 9.5.5 创建XML文档 251 9.5.6 向XML中添加内容 254 9.5.7 从XML中移除内容 255 9.5.8 更新XML的内容 256 9.5.9 操作属性 258 9.5.10 保存XML 258 9.6 小结 259 第10章 使用
LINQ
to XML查询并转换XML 260 10.1
LINQ
to XML轴方法 261 10.1.1 Element 262 10.1.2 Attribute 263 10.1.3 Elements 264 10.1.4 Descendants 264 10.1.5 Ancestors 267 10.1.6 ElementsAfterSelf、NodesAfterSelf、ElementsBeforeSelf和NodesBeforeSelf方法 268 10.1.7 Visual Basic的XML轴属性 269 10.2 标准查询操作符 271 10.2.1 使用Select进行投影 273 10.2.2 使用Where实现过滤 274 10.2.3 排序和分组 275 10.3 使用XPath查询
LINQ
to XML对象 278 10.4 转换XML 279 10.4.1
LINQ
to XML转换 279 10.4.2 使用XSLT转换
LINQ
to XML对象 282 10.5 小结 284 第11章
LINQ
to XML常见场景 285 11.1 根据XML构建对象 285 11.1.1 目标 286 11.1.2 实现 287 11.2 根据对象创建XML 290 11.2.1 目标 290 11.2.2 实现 291 11.3 根据数据库中的数据创建XML 295 11.3.1 目标 296 11.3.2 实现 297 11.4 过滤并混合从数据库以及XML中得到的数据 301 11.4.1 目标 302 11.4.2 实现 302 11.5 读取XML并更新数据库 306 11.5.1 目标 306 11.5.2 实现 307 11.6 将文本文件转换为XML 319 11.6.1 目标 319 11.6.2 实现 320 11.7 小结 322 第五部分
LINQ
无处不在 第12章 扩展
LINQ
324 12.1 探寻
LINQ
的扩展机制 324 12.1.1
LINQ
各个特性是如何实现的 325 12.1.2 自定义
LINQ
扩展能够实现什么 326 12.2 创建自定义查询操作符 327 12.2.1 改进标准查询操作符 327 12.2.2 辅助或领域相关的查询操作符 330 12.3 基本查询操作符的自定义实现 334 12.3.1 回顾查询翻译机制 334 12.3.2 查询表达式模式的规范 335 12.3.3 示例1:跟踪标准查询操作符的执行过程 337 12.3.4 限制:查询表达式冲突 338 12.3.5 示例2:非泛型的、领域相关的操作符 340 12.3.6 示例3:非序列的查询操作符 342 12.4 查询Web服务:
LINQ
to Amazon 343 12.4.1
LINQ
to Amazon介绍 344 12.4.2 需求 345 12.4.3 实现 346 12.5 IQueryable和IQueryProvider:
LINQ
to Amazon高级版本 352 12.5.1 IQueryable和IQueryProvider接口 353 12.5.2 实现 356 12.5.3 究竟发生了什么 357 12.6 小结 358 第13章 应用程序各层中的
LINQ
359 13.1
Linq
Books应用程序概览 359 13.1.1 功能 359 13.1.2 程序UI概览 360 13.1.3 数据模型 362 13.2
LINQ
to SQL及数据访问层 362 13.2.1 回顾传统的三层架构 362 13.2.2 用专门的数据访问层还是
LINQ
to SQL 364 13.2.3
Linq
Books中对
LINQ
to SQL的使用 368 13.3
LINQ
to XML的使用 374 13.3.1 从Amazon中导入数据 374 13.3.2 生成RSS 376 13.4
LINQ
to DataSet的使用 377 13.5 使用
LINQ
to Objects 380 13.6 可扩展性 380 13.6.1 自定义查询操作符 380 13.6.2 创建并使用自定义
LINQ
提供器 381 13.7 展望未来 381 13.7.1 自定义
LINQ
功能 382 13.7.2
LINQ
to XSD:强类型的
LINQ
to XML 382 13.7.3 P
LINQ
:支持并行计算的
LINQ
383 13.7.4
LINQ
to Entities,ADO.NET Entity Framework的
LINQ
接口 383 13.8 小结 384 第14章 使用
LINQ
操作DataSet 385 14.1
LINQ
to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能 386 14.2.2 DataSet是什么 387 14.2.3 Visual Studio 2008和.NET 3.5为支持
LINQ
to DataSet进行的改进 389 14.3 查询弱类型DataSet 390 14.3.1 为DataSet加载数据 390 14.3.2 不使用
LINQ
查询DataSet 394 14.3.3 使用
LINQ
to DataSet查询弱类型DataSet 395 14.4 查询强类型DataSet 399 14.4.1 生成强类型的DataSet 400 14.4.2 为强类型DataSet加载数据 402 14.4.3 使用
LINQ
to DataSet查询强类型DataSet 404 14.5 将
LINQ
to DataSet查询结果绑定至UI控件 406 14.5.1 使用CopyTo
DataTable
将
LINQ
to DataSet查询结果复制到
DataTable
406 14.5.2 使用AsDataView实现双向数据绑定 408 14.6 在
LINQ
to DataSet中使用查询操作符 410 14.6.1 用于DataRow的FieldT和SetFieldT操作符 410 14.6.2 集合操作符以及用DataRowComparer比较DataRow 411 14.7 小结 412 附录 标准查询操作符 414 作者介绍 -------------------------------------------------------------------------------- 马格里(Fabrice Marguerie),微软C# MVP,资深.NET软件架构师,
LINQ
社区专家。
LINQ
8,497
社区成员
4,736
社区内容
发帖
与我相关
我的任务
LINQ
.NET技术 LINQ
复制链接
扫一扫
分享
社区描述
.NET技术 LINQ
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章