Linq只按第一位数字排序

本文关键字:数字 排序 第一位 Linq | 更新日期: 2023-09-27 17:59:32

我似乎在排序时遇到了问题,因为它只排序第一位

int storageCapacity;
IEnumerable<ProductStorageCapacity> items;
if (int.TryParse(filter["StorageCapacity"], out storageCapacity) && storageCapacity > 0)
     items = await context.ProductStorageCapacities
     .Where(ps => ps.StorageCapacity == storageCapacity)
     .OrderByDescending(ps => ps.StorageCapacity).ToListAsync();
else items = await context.ProductStorageCapacities
     .OrderBy(ps => ps.StorageCapacity).ToListAsync();

有什么帮助吗?

Linq只按第一位数字排序

在下面的某个地方,您的StorageCapacity是一个字符串。

查看此代码(实时示例:http://rextester.com/NZALE31796):

var intList = new []{0,500,1000};
var strList = new []{ "0", "500", "1000"};

Console.WriteLine(String.Join(",",intList.OrderByDescending(x => x)));
Console.WriteLine(String.Join(",",strList.OrderByDescending(x => x)));

输出为:

1000500,0
5001000,0

第一个结果是您所期望的按整数降序排列的结果。第二个是从相同的字符串输入中得到的内容。