当前位置: 首页 > 编程语言 > C#

如何使DataTable可枚举?分享

时间:2023-04-10 15:25:30 C#

DataTable如何实现可枚举?我不能在DataTable上使用AsEnumerable(),我使用的是C#3,但我只针对2.0框架(LINQ功能由LINQBridge提供)。有没有什么方法可以在不使用Select()的情况下使DataTable可枚举?boolisExisting=(bdsAttachments.DataSourceasDataTable).Select().Any(xxx=>(string)dr["文件名"]==文件名);更新:我希望它看起来像这样:boolisExisting=(bdsAttachments.DataSourceasDataTable).AsEnumerable().Any(xxx=>(string)dr["filename"]==filename);我了解到,DataTable的Select方法返回一个副本,我只想使用AsEnumerable,问题是我只是System.Data.DataSetExtensions不适用于2.0框架顺便说一下,我试过这个:http://cs.rthand。com/blogs/blog_with_righthand/archive/2006/01/15/284.aspx,但出现编译错误。publicstaticIEnumerableEnumerateRows(thisDataTabletable){foreach(varrowintable.Rows){yieldreturnrow;}}允许您调用:boolisExisting=(bdsAttachments.DataSourceasDataTable).EnumerateRows().Any(dr=>(string)dr["filename"]==filename);IEnumerable行=dataTable.AsEnumerable();(System.Data.DataSetExtensions.dll)IEnumerable行=dataTable.Rows.OfType();(System.Core.dll)严格保持您的人口普查员2.0:publicstaticIEnumerablegetRows(DataTabletable){foreach(DataRowrowintable.Rows){yieldreturnrow;然后像这样用linqbridge调用:boolisExisting=getRows(bdsAttachments.DataSourceasDataTable).Any(row=>(string)row["filename"]==filename);您可以尝试将DataTable转换为IEnumerable并迭代该集合://yourdataexistsasaDataTableDataTabledt=(DataTable)b??dsAttachments.DataSource;foreach(DataRowrowindt){if(row["filename"]==filename)返回行;foreach将遍历列表并搜索文件名(我假设您正在搜索具有该文件名的第一个DataRow,而不是所有匹配文件名的行)。以上就是C#学习教程:如何使DataTable可枚举?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: