原语句为var q = _list.AsParallel().WithCancellation(tokenSource.Token).Where(item => item.IsBeginWith(syllables)).OrderByDescending(item => item.Syllables.Length).ThenByDescending(item => item.Frequency).Take(num).Skip(skip);
linq的Take和Skip存在先后顺序。如果这样子查询,则第二页的数目就不正确。
Skip必须要在Take前面。
修改完以后为var q = _list.AsParallel().WithCancellation(tokenSource.Token).Where(item => item.IsBeginWith(syllables)).OrderByDescending(item => item.Syllables.Length).ThenByDescending(item => item.Frequency).Skip(skip).Take(num);
翻页后就正确了。