10.4.2 出来了,有没有人用?

过客猫2022 2021-03-04 12:36:30
10.4.2 出来了,有没有人用?
...全文
773 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 7 楼 titan_ysl 的回复:
10.4.2这个版本的UnicodeString类型搞怪,在它的说明里,
String indexes are 1-based in desktop platforms and 0-based in mobile platforms.
但是在android下,你写 UnicodeString test,test1; test="12345"; test1=test[0];,调试时,查看这个变量的值是可以访问的,在运行过test1=test[0];这个代码就会出越界错误,只能从1开始访问。而在10.2.3版本中却没这个问题,是正常的!


应该是帮助没有更新。从10.4开始,Delphi编译器有一些比较大的调整,移动版编译器的内存管理模型改成和桌面版一致,对象的ARC(Automatic Reference Counting)取消了,和桌面版一样,对象需要手动释放。而且移动版的string下标改成和桌面版一致,默认从1开始(两者都可以通过编译开关切换)。可以使用条件编译检查当前编译器设置:
Delphi: {$IFDEF ZEROBASEDSTRINGS}
C++Builder: #ifdef _DELPHI_STRING_ONE_BASED
Delphi中还可以使用编译开关{$ZEROBASEDSTRINGS ON}、{$ZEROBASEDSTRINGS OFF}随时切换两种下标起点,不过不建议在一个程序中使用两种下标起点,本来就够乱的了。还有一点需要注意,不管哪版的编译器,也不管编译开关如何,System中的几个字符串函数,Copy、Insert、Delete、Pos等等,永远使用下标1起点,这是为了兼容Turbo Pascal代码的缘故。总之,Delphi编译器已经被历代编译器设计者玩坏了~
titan_ysl 2021-03-12
  • 打赏
  • 举报
回复
10.4.2这个版本的UnicodeString类型搞怪,在它的说明里, String indexes are 1-based in desktop platforms and 0-based in mobile platforms. 但是在android下,你写 UnicodeString test,test1; test="12345"; test1=test[0];,调试时,查看这个变量的值是可以访问的,在运行过test1=test[0];这个代码就会出越界错误,只能从1开始访问。而在10.2.3版本中却没这个问题,是正常的!
过客猫2022 2021-03-08
  • 打赏
  • 举报
回复
引用 3 楼 vc_dreamver 的回复:
如果不用clang作用不大。另外FMX在高清屏下感觉又出现了新BUG,如果桌面放缩了,FORM位置都不正常,TPopupMenu也显示不出来,挖掘了半天发现在程序设置里有选项,high DPI都不正常。不过有了Twincompile编译速度可以提高不少,但是code insight依然很差。还是有进步的:D
它最大的梗就是代码提示。
  • 打赏
  • 举报
回复
感觉不应该有这么明显的BUG,高DPI支持从10.0 Seattle开始就有了(2015年),经过这么多版的发展,已经比较完善了
ooolinux 2021-03-05
  • 打赏
  • 举报
回复
引用 3 楼 vc_dreamver 的回复:
如果不用clang作用不大。另外FMX在高清屏下感觉又出现了新BUG,如果桌面放缩了,FORM位置都不正常,TPopupMenu也显示不出来,挖掘了半天发现在程序设置里有选项,high DPI都不正常。不过有了Twincompile编译速度可以提高不少,但是code insight依然很差。还是有进步的:D

Form貌似有个Scaled 属性
vc_dreamver 2021-03-05
  • 打赏
  • 举报
回复
如果不用clang作用不大。另外FMX在高清屏下感觉又出现了新BUG,如果桌面放缩了,FORM位置都不正常,TPopupMenu也显示不出来,挖掘了半天发现在程序设置里有选项,high DPI都不正常。不过有了Twincompile编译速度可以提高不少,但是code insight依然很差。还是有进步的:D
ooolinux 2021-03-04
  • 打赏
  • 举报
回复
不知道改进大不大
  • 打赏
  • 举报
回复
@Kallen
完整清晰版 PDF ,有目录。共 270MB,分为 2 个分卷 中文版Excel 2007 高级VBA编程 宝典 OFFICE2007 中文版Excel 2007高级VBA编程宝典 原价:99.99元 作者:(美)沃肯巴赫(Walkenbach,J) 著;冯飞,焦瑜净 译 出版社:清华大学出版社 出版日期:2009-2-1 ISBN:9787302194675 字数:1294000 页码:872 编辑推荐 -------------------------------------------------------------------------------- “电子表格先生”潜心力作,世界级Excel畅销书。   “千锤百炼”的Excel畅销书    没有人比“电子表格先生”更了解Excel 2007。本书涵盖了使用VBA 扩展Excel 功能的方法、提示和思想。Excel 2007 还有一些绝秘的新技巧,John Walkenbach 将帮助您掌握它们。 本书的作者John Walkenbach 是享有国际美誉的“电子表格先生”。他在书中分享了自己15 年来使用Excel 的经验,毫无保留地传授了学习和使用Excel 的所有知识,为读者掌握Excel 提供了绝佳的途径。本书的前两个版本均已获得巨大成功,在前两版的基础上,本书升华了已有的精华,并结合Excel 2007 的全新特性,是一部技术含量高、实践性强的经典著作。 本书将介绍如何定制Excel 用户窗体、开发新实用程序、用VBA 处理图表及数据透视表,以及创建事件处理应用程序。还将介绍如何使用VBA 子过程和函数过程、与其他应用程序轻松交互、构建用户友好的工具栏、菜单和帮助系统等。 内容提要 -------------------------------------------------------------------------------- 这本全能的手册适合对Excel感兴趣的所有人群,不但内容丰富、权威,且条理清晰、结构合理。本书的作者是当之无愧的世界级Excel电子表格专家,他为读者倾心打造了这本专著,书中汇聚他15年来使用Excel的所有经验,涵盖Excel应用和VBA编程涉及的方方面面,是经典著作Excel 2003 Power Programming with VBA的全新升级版。 目录 -------------------------------------------------------------------------------- 第Ⅰ部分 Excel基础知识  第1章 Excel 2007的起源   1.1 电子表格软件的简史    1.1.1 最初的起源:VisiCalc    1.1.2 Lotus 1-2-3     1.1.3 Quattro Pro   1.1.4 Microsoft Excel   1.2 Excel 对开发人员的重要性   1.3 Excel在Microsoft 战略中的角色  第2章 Excel概述   2.1 关于对象   2.2 工作簿    2.2.1 工作表    2.2.2 图表工作表    2.2.3 XLM宏工作表    2.2.4 Excel 5/95对话框编辑表   2.3 Excel的用户界面    2.3.1 功能区的引入    2.3.2 快捷菜单    2.3.3 对话框    2.3.4 键盘快捷键    2.3.5 智能标记    2.3.6 任务窗格   2.4 自定义屏幕显示   2.5 数据录入   2.6 公式、函数和名称   2.7 选择对象   2.8 格式    2.8.1 数字格式    2.8.2 样式格式   2.9 保护选项    2.9.1 保护公式以防被重写    2.9.2 保护工作簿的结构    2.9.3 运用密码来保护工作簿    2.9.4 使用密码来保护VBA代码   2.10 图表   2.11 形状和SmartArt   2.12 数据库访问    2.12.1 工作表数据库    2.12.2 外部数据库   2.13 Internet特性   2.14 分析工具    2.14.1 分级显示    2.14.2 分析工具库    2.14.3 数据透视表    2.14.4 Solver    2.14.5 XML特性   2.15 加载项   2.16 宏和编程   2.17 文件格式   2.18 Excel的帮助系统  第3章 公式的使用技巧   3.1 公式概述   3.2 计算公式   3.3 单元格和单元格区域引用    3.3.1 为什么使用不是相对的引用    3.3.2 R1C1表示法    3.3.3 引用其他的工作表或工作簿   3.4 使用名称    3.4.1 命名单元格和单元格区域    3.4.2 将名称应用于现有的引用    3.4.3 交叉名称    3.4.4 命名列和行    3.4.5 名称的作用范围    3.4.6 命名常量    3.4.7 命名公式    3.4.8 命名对象   3.5 公式错误   3.6 数组公式    3.6.1 一个数组公式的例子    3.6.2 数组公式日历    3.6.3 数组公式的优缺点   3.7 计数和求和技巧    3.7.1 计数公式的示例    3.7.2 求和公式的示例    3.7.3 其他计数工具   3.8 使用日期和时间    3.8.1 输入日期和时间    3.8.2 使用1900年之前的日期   3.9 创建大公式  第4章 理解Excel的文件   4.1 启动Excel   4.2 文件类型    4.2.1 Excel文件格式    4.2.2 文本文件格式    4.2.3 数据库文件格式    4.2.4 其他文件格式   4.3 模板文件的处理    4.3.1 查看模板    4.3.2 创建模板    4.3.3 创建工作簿模板   4.4 Excel文件的内部情况    4.4.1 仔细分析一个文件    4.4.2 为什么文件格式很重要   4.5 QAT文件   4.6 XLB文件   4.7 加载宏文件   4.8 Excel在注册表中的设置    4.8.1 关于注册表    4.8.2 Excel的设置 第Ⅱ部分 Excel应用程序开发  第5章 电子表格应用程序的内涵   5.1 电子表格应用程序   5.2 开发人员和终端用户    5.2.1 谁是开发人员    5.2.2 电子表格应用程序用户的分类    5.2.3 电子表格应用程序的客户   5.3 用Excel解决问题   5.4 基本的电子表格应用程序类型    5.4.1 快捷但质量不高的电子表格应用程序    5.4.2 自己创作、自己使用的电子表格应用程序    5.4.3 单用户电子表格应用程序    5.4.4 意大利面条式电子表格应用程序    5.4.5 实用电子表格应用程序    5.4.6 包含工作表函数的加载宏电子表格    5.4.7 单元块预算式电子表格应用程序    5.4.8 假设分析模型式电子表格应用程序    5.4.9 数据存储和访问电子表格应用程序    5.4.10 数据库前端电子表格应用程序    5.4.11 统包式电子表格应用程序  第6章 电子表格应用程序开发的基础   6.1 确定用户需求   6.2 规划满足用户需求的应用程序   6.3 确定最合适的用户界面    6.3.1 创建自定义的功能区    6.3.2 创建自定义的快捷菜单    6.3.3 创建快捷键    6.3.4 创建自定义的对话框    6.3.5 在工作表上使用ActiveX控件    6.3.6 执行开发的成果   6.4 使自己关心终端用户    6.4.1 测试应用程序    6.4.2 尽量完善应用程序的安全性    6.4.3 让应用程序变得美观和直观    6.4.4 创建用户帮助系统    6.4.5 将开发工作进行归档    6.4.6 将电子表格应用程序分发给用户    6.4.7 在需要的时候更新电子表格应用程序   6.5 其他开发问题    6.5.1 用户安装的Excel版本    6.5.2 语言问题    6.5.3 系统速度    6.5.4 视频模式 第Ⅲ部分 理解VBA  第7章 VBA概述   7.1 BASIC的一些基本背景   7.2 关于VBA    7.2.1 对象模型    7.2.2 VBA与XLM的对比   7.3 VBA的基础知识   7.4 Visual Basic编辑器概述    7.4.1 显示Excel的“开发工具”选项卡    7.4.2 激活VBE    7.4.3 VBE窗口   7.5 使用“工程资源管理器”窗口    7.5.1 添加新的VBA模块    7.5.2 移除VBA模块    7.5.3 导出和导入对象   7.6 使用“代码”窗口    7.6.1 窗口的最小化和最大化    7.6.2 VBA代码的存储    7.6.3 VBA代码的输入   7.7 VBE环境的定制    7.7.1 使用“编辑器”选项卡    7.7.2 使用“编辑器格式”选项卡    7.7.3 使用“通用”选项卡    7.7.4 使用“可连接的”选项卡   7.8 宏录制器    7.8.1 宏录制器实际记录哪些内容    7.8.2 相对模式还是绝对模式    7.8.3 选项的录制    7.8.4 整理己录制的宏   7.9 关于对象和集合    7.9.1 对象层次结构    7.9.2 关于集合    7.9.3 对象的引用   7.10 属性和方法    7.10.1 对象的属性    7.10.2 对象的方法   7.11 Comment对象示例    7.11.1 查看有关Comment对象的帮助    7.11.2 Comment对象的属性    7.11.3 Comment对象的方法    7.11.4 Comments集合    7.11.5 关于Comment属性    7.11.6 Comment对象中的对象    7.11.7 确定单元格中是否含有Comment对象    7.11.8 添加新的Comment对象   7.12 一些有用的应用程序属性   7.13 Range对象的使用    7.13.1 Range属性    7.13.2 Cells属性    7.13.3 Offset属性   7.14 关于对象的更多信息    7.14.1 需要牢记的基本概念    7.14.2 学习有关对象和属性的更多信息  第8章 VBA编程基础   8.1 VBA语言元素概览   8.2 注释   8.3 变量、数据类型和常量    8.3.1 数据类型的定义    8.3.2 声明变量    8.3.3 变量的作用域    8.3.4 常量的使用    8.3.5 字符串的使用    8.3.6 日期的使用   8.4 赋值语句   8.5 数组    8.5.1 数组的声明    8.5.2 多维数组的声明    8.5.3 动态数组的声明   8.6 对象变量   8.7 用户定义数据类型   8.8 内置函数   8.9 对象和集合的处理    8.9.1 With-End With构造    8.9.2 For Each-Next构造   8.10 代码执行的控制    8.10.1 GoTo语句    8.10.2 If-Then构造    8.10.3 Select Case构造    8.10.4 指令的循环块  第9章 VBA的Sub过程   9.1 关于过程    9.1.1 Sub过程的声明    9.1.2 过程的作用域   9.2 执行Sub过程    9.2.1 通过“运行子过程/用户窗体”命令执行过程    9.2.2 从“宏”对话框执行过程    9.2.3 用Ctrl 快捷键组合执行过程    9.2.4 从功能区执行过程    9.2.5 从自定义快捷菜单中执行过程    9.2.6 从另一个过程执行过程    9.2.7 通过单击对象执行过程    9.2.8 在事件发生时执行过程    9.2.9 从“立即窗口”执行过程   9.3 向过程中传递参数   9.4 错误处理技术    9.4.1 捕获错误    9.4.2 错误处理示例   9.5 使用Sub过程的实际例子    9.5.1 目标    9.5.2 工程需求    9.5.3 已经了解的信息    9.5.4 着手处理    9.5.5 需要了解哪些信息    9.5.6 初步的录制工作    9.5.7 初始设置    9.5.8 代码的编写    9.5.9 排序过程的编写    9.5.10 更多的测试    9.5.11 修复问题    9.5.12 实用程序的可用性    9.5.13 对工程进行评估  第10章 创建Function过程   10.1 Sub过程与Function过程的对比   10.2 为什么创建自定义的函数   10.3 介绍性的函数示例    10.3.1 一个自定义函数    10.3.2 在工作表中使用函数    10.3.3 在VBA过程中使用函数    10.3.4 分析自定义函数   10.4 Function过程    10.4.1 声明函数    10.4.2 函数的作用域    10.4.3 执行Function过程   10.5 Function过程的参数   10.6 函数示例    10.6.1 无参数的函数    10.6.2 带有一个参数的函数    10.6.3 带有两个参数的函数    10.6.4 使用数组作为参数的函数    10.6.5 带有可选参数的函数    10.6.6 返回VBA数组的函数    10.6.7 返回错误值的函数    10.6.8 带有不定数量的参数的函数   10.7 模拟Excel的SUM函数   10.8 函数的调试   10.9 使用“插入函数”对话框    10.9.1 指定函数类别    10.9.2 添加函数说明   10.10 使用加载宏存储自定义的函数   10.11 使用Windows API    10.11.1 Windows API示例    10.11.2 确定Windows目录    10.11.3 检测Shift键    10.11.4 了解更多有关API 函数的信息  第11章 VBA编程示例和技巧   11.1 处理单元格区域    11.1.1 复制单元格区域    11.1.2 移动单元格区域    11.1.3 复制大小可变的单元格区域    11.1.4 选中或者识别各种类型的单元格区域    11.1.5 提示输入单元格中的值    11.1.6 在下一个空单元格中输入一个值    11.1.7 暂停宏的运行以便获得用户选中的单元格区域    11.1.8 计算选中的单元格的数目    11.1.9 确定选中的单元格区域的类型    11.1.10 有效地遍历选中的单元格区域    11.1.11 删除所有空行    11.1.12 任意次数地复制行    11.1.13 确定单元格区域是否包含在另一个单元格区域内    11.1.14 确定单元格的数据类型    11.1.15 读写单元格区域    11.1.16 在单元格区域中插入值的更好方法    11.1.17 传递一维数组中的内容    11.1.18 将单元格区域传递给Variant类型的数组    11.1.19 按数值选择单元格    11.1.20 复制非连续的单元格区域   11.2 处理工作簿和工作表    11.2.1 保存所有工作簿    11.2.2 保存和关闭所有工作簿    11.2.3 隐藏除选区之外的区域    11.2.4 同步工作表   11.3 VBA技巧    11.3.1 切换布尔类型的属性值    11.3.2 确定打印页面的数量    11.3.3 显示日期和时间    11.3.4 获得字体列表    11.3.5 对数组进行排序    11.3.6 处理一系列文件   11.4 使用在代码中的一些有用的函数    11.4.1 FileExists函数    11.4.2 FileNameOnly函数    11.4.3 PathExists函数    11.4.4 RangeNameExists函数    11.4.5 SheetExists函数    11.4.6 WorkbookIsOpen函数    11.4.7 检索已经关闭的工作簿中的值   11.5 一些有用的工作表函数    11.5.1 返回单元格的格式信息    11.5.2 会说话的工作表    11.5.3 显示在保存或打印文件时的时间    11.5.4 理解对象的父亲    11.5.5 计算值介于两个值之间的单元格数目    11.5.6 计算单元格区域中可见单元格的数目    11.5.7 确定行或列中最后一个非空的单元格    11.5.8 字符串与模式匹配    11.5.9 从字符串中提取第n个元素    11.5.10 多功能的函数    11.5.11 SheetOffset函数    11.5.12 返回所有工作表中数据的最大值    11.5.13 返回没有重复的随机整数元素的数组    11.5.14 随机化单元格区域   11.6 Windows API调用    11.6.1 确定文件的关联性    11.6.2 确定磁盘驱动器信息    11.6.3 确定默认打印机的信息    11.6.4 确定视频显示器的信息    11.6.5 为应用程序添加声音    11.6.6 读写注册表 第Ⅳ部分 用户窗体  第12章 多种自定义对话框的方法   12.1 创建用户窗体之前需要了解的内容   12.2 使用输入框    12.2.1 VBA的InputBox函数的使用    12.2.2 Excel的InputBox方法   12.3 VBA的MsgBox函数   12.4 Excel的GetOpenFilename方法   12.5 Excel的GetSaveAsFilename方法   12.6 提示输入目录名称    12.6.1 使用Windows API函数选中目录    12.6.2 使用FileDialog对象选中目录   12.7 显示Excel的内置对话框    12.7.1 关于Dialogs集合    12.7.2 执行功能区命令   12.8 显示数据记录单    12.8.1 使得数据记录单变得可以访问    12.8.2 通过使用VBA来显示数据记录单  第13章 用户窗体概述   13.1 Excel如何处理自定义对话框   13.2 插入新的用户窗体   13.3 向用户窗体添加控件   13.4 “工具箱”中的控件    13.4.1 复选框    13.4.2 组合框    13.4.3 命令按钮    13.4.4 框架    13.4.5 图像    13.4.6 标签    13.4.7 列表框    13.4.8 多页    13.4.9 选项按钮    13.4.10 RefEdit    13.4.11 滚动条    13.4.12 数值调节钮    13.4.13 TabStrip    13.4.14 文本框    13.4.15 切换按钮   13.5 调整用户窗体的控件   13.6 调整控件的属性    13.6.1 使用“属性”窗口    13.6.2 共同属性    13.6.3 更多属性的信息    13.6.4 适应键盘用户的需求   13.7 显示和关闭用户窗体    13.7.1 显示用户窗体    13.7.2 关闭用户窗体    13.7.3 关于事件处理程序   13.8 创建用户窗体的示例    13.8.1 创建用户窗体    13.8.2 编写代码显示对话框    13.8.3 测试对话框    13.8.4 添加事件处理程序    13.8.5 验证数据的有效性    13.8.6 完成的对话框作品   13.9 理解用户窗体的事件    13.9.1 了解事件    13.9.2 用户窗体的事件    13.9.3 数值调节钮的事件    13.9.4 数值调节钮与文本框配对   13.10 引用用户窗体的控件   13.11 自定义“工具箱”    13.11.1 更改图标或提供文本    13.11.2 添加新页    13.11.3 自定义或组合控件    13.11.4 添加新的ActiveX控件   13.12 创建用户窗体的模板   13.13 用户窗体检验表  第14章 用户窗体示例  第15章 用户窗体的高级技巧 第Ⅴ部分 高级编程技巧  第16章 用VBA开发Excel实用程序  第17章 使用数据透视表  第18章 使用图表  第19章 理解Excel的事件  第20章 与其他应用程序的交互  第21章 创建和使用加载宏 第Ⅵ部分 开发应用程序  第22章 使用功能区  第23章 使用快捷菜单  第24章 为应用程序提供帮助  第25章 开发面向用户的应用程序 第Ⅶ部分 其他主题  第26章 兼容性问题  第27章 用VBA处理文件  第28章 使用Visual Basic组件  第29章 理解类模块  第30章 使用颜色  第31章 有关Excel编程的常见问题 第Ⅷ部分 附录
清晰完整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 LinqBooks应用程序概览 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 LinqBooks中对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 PLINQ:支持并行计算的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 使用CopyToDataTable将LINQto 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社区专家。

551

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧