vb.net groupby分组问题?

本文介绍了数据表:通过LINQ或LAMBDA进行动态分组依据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

我有一个DataTable,我要在其中分组一个未指定数量的字段.这就是为什么用户可以选择要分组的字段的原因.

因此,实际上,我将选择放在列表中.在这种选择下,我必须将我的数据表分组.

想象一下这段代码(VB或C#是相同的):

我该怎么办?在这种情况下,我该如何表达GroupBy表达式.

很明显,LINQ或LAMBDA解决方案是相同的.

阿列克斯·安德烈耶夫(Aleks Andreev)的回应行之有效!非常感谢.

您可以在GroupBy调用中使用自定义相等比较器.定义比较器:

这篇关于数据表:通过LINQ或LAMBDA进行动态分组依据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

预期读者: 软件开发及相关人员

好的ORM工具不仅可以帮助我们很好的理解对象,而且工具本身会帮助我们记住字段属性的业务含义并提供辅助应用。基于这个理念,一个基于.Net的ORM工具——VB/C#.Net实体代码生成工具(EntitysCodeGenerate)便应运而生,该工具运行于.更高版本上也可以很好的运行。

该工具为ORM提供了对象持久化查询和事务处理等功能,包括对象的Insert、Update、Delete、Save、Select等,对象查询提供如GetEntity及构造函数获取对象和实体集信息等。工具职责是从数据库中提取数据模型信息并生成实体类,帮助开发人员快速映射到关系数据库中的业务数据模型,最优化快速开发。目前提供直接从Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)及OleDb、Custom(自定义)类型的数据库和PowerDesigner文件中生成VB/C#.Net代码的支持,可以生成实体和实体集的相关代码,并自动提取表及字段的注释说明和对应的数据类型等信息。

另外所生成的代码文件只需修改数据库连接,即可用于目前市场上支持默认值。若修改过程中想恢复默认的配置,只须点击右端“生成”按钮即可(注意不同语言的类型定义可能有所差异,注意区分。如:C#的byte[],在VB中的定义为byte())。准备工作做好后,单击“生成代码”按钮即可(若不想全部生成,单击“选择生成”按钮)。生成成功之后按生成配置说明文档的提示,将实体代码文件和基类文件拷贝到指定目录,并按生成代码文件所在“相关配置”目录下的配置说明文档,添加对应dll文件的引用即可。操作简单这里就不在此赘述,下面以C#.Net为例介绍实体对象的数据库操作的工作,因篇幅所限,支持的各种类型的数据库,可执行自定义编写的SQL语句和存储过程等,可针对复杂功能的特殊处理并对项目瓶颈问题作性能优化等操作。

Framework之后,创建的新项目中会自动包含实体代码生成工具(EntitysCodeGenerate)对各种数据库访问的统一操作的简单介绍,详细可见示例代码及工具帮助文档;工具安装后附带大量的示例代码,里面有更多的示例和chm格式的帮助文档。另外,使用该工具,当项目需要切换数据库或使用不同的数据库时,只须适当修改数据库连接类型及连接字符串即可。

在设计表时建议:数据库表名及字段名应当遵循通用规范,如都使用大写英文字母,首字符以大写英文字母开头且不含有特殊符号,如'┋'字符;表中不含有嵌套表、表名不与字段名重复(对老系统如果表名与字段名相同,则可通过建立视图或同义词再修改实体类名也可,但一般不推荐这样使用)等。另外文字命名可约定俗成为单数形式,可以是英文字母及数字和下划线(_)组合,此外建议表命名以"T_"开头,表字段以"C_"开头,视图以"V_"开头等,这样做的目的可使数据库设计更规范化,也避免了与关键字的冲突,同时也是因为许多数据库都是英文字母开头的且不能含有特殊字符,如Oracle就是这样,且表名称和字段名都是大写(对PostgreSQL建议采用小写命名),长度不超过30个字符(命名过长无意义,有些数据库也不支持),多出的信息可以在命名注释里多写些注释信息。若采用Oledb、Odbc方式连接,表字段名最好不要这样FIELD1,2,1.1及以上版本,并结合多年具体项目的需求,可以像抽屉一样单独或分开使用,也可和其它组件并行使用,如可以与其它组件或平台的集成,动态得从相关平台或组件中读取数据库参数而不必写死在文件里,这样若要实现对用户数据库连接信息加密/解密也可以很好的处理。

理论的实现总是从简单到复杂,覆盖所有可能,实际应用则需要结合实际从复杂到简单,凡是要灵活变通使用,化复杂为简单,将复杂的东西以简单的方式处理。

软件开发都希望从大量重复的代码中解放出来,缩短工期并提高项目质量,同时当需要的时候可以准确的将绝大多数后台代码快速完成,并要便于后期维护,这些就需要适当借助一些工具和方法为开发、维护和交流提供良好的保障,显然该工具提供了最佳选择。

尽管我们注入大量心血,但不足之处在所难免,有待进一步完善,敬请来信交流()、批评斧正!

 将匿名类改成class后,发现不能正常多字段分组统计了


 //方法一方式,最大的区别在于不用侵入实体类添加代码

我要回帖

更多关于 分组函数groupby加条件 的文章

 

随机推荐