我有以下代码在foreach循环中构造一个SORT查询,但是我的问题是这将用最新的一个替换旧的排序描述符。
SearchDescriptor<MyDTO> nQuery = new SearchDescriptor<MyDTO>();
foreach (var sort in criteria.SortQuery.OrderBy(o => o.SortPreference))
{
nQuery= nQuery.Sort(s => s.Field(sort.SortName, sort.SortOrder));
}
如何在ForEach
答案 0 :(得分:3)
您可以通过
执行此操作var sortDescriptor = new SortDescriptor<Document>();
foreach (var sort in sortCollection)
{
SortOrder sortOrder;
var tryParse = Enum.TryParse(sort.Order, out sortOrder);
if(!tryParse) up to you how you are going to handle incorrect sort order
sortDescriptor.Field(sort.FieldName, sortOrder);
}
client.Search<Document>(s => s.Size(0).Sort(sort => sortDescriptor));
希望它有所帮助。