- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有代码:
dt = collListItems.GetDataTable().AsEnumerable()
.Where(a => Convert.ToString(a["Expertise"]).Contains(expertise) && Convert.ToString(a["Office"]) == office)
.CopyToDataTable();
filteredCount = dt.Rows.Count();
当没有匹配的行时,我应该如何最好地处理事件?目前我得到“源不包含数据行”,但在这种情况下我想将 filteredCount 设置为 0。
提前致谢。
编辑:我知道 try..catch 有效,但有更优雅的方法吗?
最佳答案
您当然不想为此使用 try/catch。 Try/Catch 应该在真正异常的情况下使用,您不希望让它驱动您的控制流。在几乎所有情况下,都有更好的方法直接内置到语言/库中,或者只需要最少的编码工作。
在这种情况下,您希望事先捕获表,这样您就不会多次调用 GetDataTable()
方法,因为如果查询不需要,我们将需要它包括任何结果。如果查询本身成本高昂或运行时间长,您还可以选择在查询中包含 ToList()
,这样您只需执行一次。
之后,就是测试结果中是否有任何行。如果是这样,您可以安全地复制到数据表。否则,只需克隆原始表的结构(不包括行),这样在任何一种情况下,您都有一个正确的表结构并且可以检查行数,将其绑定(bind)到控件,等等,没有惊喜。
var table = collListItems.GetDataTable();
var rows = table.AsEnumerable().Where(...); // optionally include .ToList();
var dt = rows.Any() ? rows.CopyToDataTable() : table.Clone();
int filteredCount = dt.Rows.Count;
关于c# - 没有行时如何处理 CopyToDataTable()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7815916/
我一直在寻找如何解决这个问题好几个小时了,但我似乎无法完全弄明白。我想要做的是选择 1 个表的一部分并将其复制到临时表(我的应用程序需要一次处理特定的组)。当我尝试实现 CopyToDataTable
我有代码: dt = collListItems.GetDataTable().AsEnumerable() .Where(a => Convert.ToString(a["Exper
我有一个 linq to dataTable 查询是这样的: `var ShowResult = from r in Result.AsEnumerable()
在没有找到行时使用 CopyToDataTable() 避免异常当没有找到行时我尝试了这段代码然后它给了我错误源不包含数据行。 ds.Tables.Add(dsDecEjID.Tables(0).Se
我在 VB.Net 脚本文件中有一个函数,但它会产生错误“CopyToDataTable”不是“system.array”的成员。有什么想法吗? Public Function CollectionF
以下代码示例是从 MSDN here 借来的.我的代码中没有可用的 query.CopyToDataTable()。 (请参阅我以下代码中的注释行)。 public static bool SetPh
我遇到了一些可能是扩展方法中的缺陷 .CopyToDataTable . 此方法由导入使用(在 VB.NET 中)System.Data.DataTableExtensions然后针对 IEnumer
我正在使用 CopyToDataTable 选择更大表的子集。但是,“utcDT”的 DateTimeMode 不会复制到新表中: var x = new DataTable();
从这段代码中,我可以按预期调用 bmwCars.CopyToDataTable()。 var bmwCars = from car in dataTable.AsEnumerable()
我想使用 DataTableExtensions 中提供的 CopyToDataTable 方法创建一个给定列表的数据表。我之前问过这个问题 How do I transform a List int
问题: 我正在使用 Linq.Dynamic 的修改版本根据 ajax 请求对数据表进行排序(请参见下面的代码)。到目前为止,它曾经工作正常。 但是,我有一个问题: 如果我有一个包含 NULL 值的数
我是一名优秀的程序员,十分优秀!