【问题标题】:linq to sql to get single valuelinq to sql 获取单个值
【发布时间】:2016-01-29 03:47:56
【问题描述】:
我正在寻找一种简洁的单行方法来使用 lambda 使用 VB.Net 从 DataTable 获取单个值
此代码有效
OPT_UDLY = (From X In DATA.OPTIONs
Where X.CONTRACT = CTC
Select X.UDLY).Single()
但我想像这样在一行中获取值(这不起作用)
OPT_UDLY = DATA.Where(function(t) t.contract.Equals(CTC)).Distinct()
有什么建议吗?
【问题讨论】:
标签:
vb.net
linq
linq-to-sql
lambda
distinct
【解决方案1】:
试试这个:
OPT_UDLY = Data.OPTIONs.Where(Function(t) t.CONTRACT = CTC).Select(Function(x) x.UDLY).Single()
- 由于您在多条LINQ 行中使用
Data.OPTIONs,它也应该始终用于单行。
- 此外,由于您只需要
UDLY 元素,因此请在单行样式中进一步使用 Select LINQ 表达式,就像您在多行中所做的那样。
- 最后,如果只有一个匹配项,请使用
Single 返回匹配值,就像您已经做的那样。
【解决方案2】:
只需删除换行符:
OPT_UDLY = (From X In DATA.OPTIONs Where X.CONTRACT = CTC Select X.UDLY).Single()
它比等效的 lambda 更短且更具可读性:
OPT_UDLY = Data.OPTIONs.Where(Function(t) t.CONTRACT = CTC).Select(Function(x) x.UDLY).Single()