1
이것이 단일 LINQ에서 수행 될 수 있다고 생각하지만 해결할 수는 없습니다. 다음의 성능은 OK입니다 (큰 목록에서 2 초). 주로 소팅하기 위해 List를 만드는 것에 대한 기억을 피하려고합니다. dlWord21을 두 번째 int 및 첫 번째 int로 정렬하여 반환해야합니다.LINQ 작업을 사용하여 사전 <K, Dictionary <K,V>>을 어떻게 정렬합니까?
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);
문제는 당신이 위의 @BobVale 소스를 수집하고 그래서 열거 실 거예요 작업 –
을 삭제하고 있기 때문에 어느 시점에서 목록을 작성해야 할 것입니다 작동중인 코드입니다. docFTSinXs가 새롭게 바뀌고 새로운 값을 얻습니다. 그러므로 내 기억이 걱정된다. – Paparazzi
필자가리스트를 작성하는 것을 피한다면, clear() 후에 열거 될 가능성이 있으므로'dlWord21.Clear()'를 호출 할 수 없습니다. 따라서 목록을 만드는 요구 사항. –