我认为这可以在单个 LINQ 中完成,但无法弄清楚。下面的表现还可以(大List上2秒)。主要是我想摆脱创建一个列表只是为了排序的内存问题。需要返回按第二个 int 然后第一个 int 排序的 dlWord21。
List<DocFTSinX> docFTSinXs = new List<DocFTSinX>();
foreach (KeyValuePair<int, Dictionary<int, byte>> kvpm in dlWord21)
{
foreach (KeyValuePair<int, byte> kvps in kvpm.Value)
{
docFTSinXs.Add(new DocFTSinX(kvps.Key, kvpm.Key, kvps.Value));
// Word1 Word2
}
}
dlWord21.Clear();
return docFTSinXs.OrderBy(x => x.Word1).ThenBy(x => x.Word2);