我使用datatable
从linq
过滤数据,它工作正常,除非搜索条件不匹配,因此不会因空虚而处理结果表。
以下是我的代码:
var table = dtTokensInfo.AsEnumerable()
.Where(r => r.Field<string>("tokenName").Contains(txtTokenName.Text))
.CopyToDataTable();
我希望表包含从dtTokensInfor过滤的值,但在搜索条件不匹配时无法处理
答案 0 :(得分:1)
您应该从Linq表达式
的结果中分离对CopyToDataTable的调用DataTable table = null;
var temp = dtTokensInfo.AsEnumerable()
.Where(r => r.Field<string>("tokenName")
.Contains(txtTokenName.Text));
if(temp != null)
table = temp.CopyToDataTable();
如果查看MSDN page about CopyToDataTable IEnumerable扩展,您会注意到抛出的可能异常
ArgumentNullException:源IEnumerable(Of T)序列是 无法创建任何内容和新表。