下面的代码在排序方面有什么问题?排序代码被击中,但排序从不应用于结果。IQueryable排序不起作用
var results = new List<Location>();
var county = context.boc_County.Where(x => x.Description.Contains(phrase.ToLower())).ToList();
results.AddRange(_mapper.MapCountyFromDb(county));
var town = context.boc_Town.Where(x => x.Description.Contains(phrase.ToLower())).ToList();
results.AddRange(_mapper.MapTownFromDb(town));
if (orderBy == "Identifier")
{
if (direction == "ASC")
results = results.OrderBy(x => x.Identifier);
else
results = results.OrderByDescending(x => x.Identifier);
}
if (orderBy == "Type")
{
if (direction == "ASC")
results = results.OrderBy(x => x.LocationType.ToString());
else
results = results.OrderByDescending(x => x.LocationType.ToString());
}
if (orderBy == "Description")
{
if (direction == "ASC")
results = results.OrderBy(x => x.Description);
else
results = results.OrderByDescending(x => x.Description);
}
var model = new LocationSearchResult()
{
Locations = query.Skip(page * pageSize).Take(pageSize),
TotalCount = query.Count()
};
return model;
:
,或者您可以使用'?你使用'AsQueryable'使它变得更加复杂。此外,我们不知道各种变量值是什么......如果你能给我们一个简短但完整的例子来证明这个问题会好得多。 –
List<T>.Sort
代替“在这里呢?你有一个内存集合(你正在使用'ToList'),为什么不把它保存为'IEnumerable我看不到任何错误。通过删除内容来简化您的代码。你会发现它最终工作。罪魁祸首就是你刚刚删除的东西。 – usr
简单解释:'orderBy'永远不会匹配您测试的字符串。使用调试器可以轻松找到这些错误。 – usr