【发布时间】:2021-02-21 04:17:58
【问题描述】:
使用对象初始化器语法,在定义条款的行上,我收到一个错误:无法将源类型 'System.Collections.Generic.List
var query = new TermsQuery
{
Field = new Field("seq"),
Terms = new List<int> {1 ,2, 3}
};
如果使用流利的 DSL 定义,则此方法有效
var search = new List<int> {1, 2, 3};
q.Terms(c => c
.Field(p => p.seq)
.Terms(search)
)
我在对象初始值设定项语法上做错了什么?提前感谢您的帮助。
【问题讨论】:
-
Terms = new List<object> {1 ,2, 3} -
尽管@mjwills 解决了错误,但我会检查为什么
Terms期望object的可枚举而不是int。它们之间的转换称为装箱和拆箱,在性能方面可能非常昂贵。 -
The conversion between them called boxing and unboxing and may be very costly in terms of performance.对于三个值,性能成本将是微乎其微的。
标签: c# elasticsearch nest