的方式,我有這樣的代碼:我的LINQ排序似乎並沒有被選我要求它
var query = _cityRepository.GetAll(
u => u.PartitionKey == pk &
u.RowKey.CompareTo(lowerBound) >= 0 &
u.RowKey.CompareTo(upperBound) < 0)
.OrderBy(item => item.RowKey.Substring(0, 3))
.ThenBy(item => item.ShortTitle)
.Select((t, index) => new City.Grid()
{
PartitionKey = t.PartitionKey,
RowKey = t.RowKey,
Row = index + 1,
ShortTitle = t.ShortTitle,
Created = t.Created,
CreatedBy = t.CreatedBy,
Modified = t.Modified,
ModifiedBy = t.ModifiedBy
})
.ToList();
當我看到數據出來我覺得這是對前兩行:
RowKey = 0101004O , ShortTitle = "Access 1"
RowKey = 0103004M , ShortTitle = "Access 2"
RowKey = 0101004K , ShortTitle = "xxx"
當測試我簡化了這個給:
var query1 = _cityRepository.GetAll()
.OrderBy(item => item.RowKey.Substring(0, 3))
.ThenBy(item => item.ShortTitle);
和順序是相同的。仍然RowKey似乎沒有正確的順序。
它應該排序的rowkey的前四個字符,然後在ShortTitle。
任何人都可以明白爲什麼這是行不通的。我看過很難,但我不明白爲什麼排序依據和ThenBy似乎並沒有正常工作。
這個錯誤可能在這裏:** item.RowKey.Substring(0,3)**。我認爲它應該是** item.RowKey.Substring(0,4)** –
謝謝大家! – Alan2