我正在寻找一种简洁的一行方法,使用DataTable
VB.Net
获取单个值
此代码有效
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()
有什么建议吗?
答案 0 :(得分:1)
试试这个:
import openpyxl
import warnings
warnings.simplefilter("ignore")
preq = openpyxl.load_workbook('/Users/Ians/Desktop/_complete.xlsx')
preqWb = preq.get_sheet_names()
preqAS = preq.get_sheet_by_name(preqWb[0])
newRwa = open('/Users/Ians/Desktop/newRwa.xlsx','w')
for i in range(2, 101):
a=preqAS['A'+str(i)].value <==== correct value printed
b=preqAS['B'+str(i)].value <==== correct value printed
newRwa.write(a,b) <=========== error line TypeError: 'str' object is not callable
newRwa.close()
OPT_UDLY = Data.OPTIONs.Where(Function(t) t.CONTRACT = CTC).Select(Function(x) x.UDLY).Single()
,因此它也应始终用于单行。 Data.OPTIONs
元素,因此请使用单行样式中的UDLY
Select
表达式,就像您在多行中所做的那样。 LINQ
返回匹配值,就像您已经做过的那样。答案 1 :(得分:1)
只需删除换行符:
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()