문자열 목록이 있습니다.
List<string> l1 = new List<string>();
l1.Add("i");
l1.Add("k");
List<string> l2 = new List<string>();
l2.Add("f");
l2.Add("a");
pChain = new List<List<string>>();
pChain.Add(l1);
pChain.Add(l2);
...
pChain
각 목록의 첫 번째 항목을 기준으로 정렬하고 싶습니다 (결과는 l2, l1이어야 함).
시도 pChain.Sort();
했지만 예외가 발생했습니다.
mscorlib.dll에서 'System.InvalidOperationException'유형의 처리되지 않은 예외가 발생했습니다.
추가 정보 : 배열의 두 요소를 비교하지 못했습니다.
에 대한 기본 호출 pChain.Sort()
은 첫 번째 요소를 기준으로 정렬하려는 것을 예측할 수 없으므로 다음을 명시 적으로 지정해야합니다.
pChain.Sort((x, y) => String.Compare(x.FirstOrDefault(), y.FirstOrDefault()));
또는 Linq의 OrderBy ( 문서에 따라 안정적인 정렬)를 사용할 수 있습니다 .
pChain = pChain.OrderBy( x => x.FirstOrDefault()).ToList();
이 방법은 안정적인 정렬을 수행합니다. 즉, 두 요소의 키가 같으면 요소의 순서가 유지됩니다. 반대로 불안정한 정렬은 동일한 키를 가진 요소의 순서를 유지하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다