【发布时间】:2018-08-08 14:06:57
【问题描述】:
我有一个名为 currencyAmounts 的数据表并使用 lambda,我的表达式工作正常,直到返回有多种可能性。我正在 DataTable 中搜索与我的“值”变量匹配的内容。如何更改以下表达式以仅选择返回的第一行:
DataRow resultRow = currencyAmounts.AsEnumerable().Single(r => ((decimal)r["OriginalAmount"]) == value);
运行时出现以下错误:
序列包含多个匹配元素
【问题讨论】:
-
错误消息实际上解释了这一切。当条件中有多个匹配元素时 Single() 抛出异常。(或没有元素)
-
使用
Single()表示结果集应包含 1 个元素。如果您想从序列中获取第一个,请使用FirstOrDefault()。 -
正是我想要的,巴里。谢谢。
标签: c# linq lambda datatable datarow