0
dynamicaly로 채워진 keyvaluepair 바인딩 목록이 있습니다.keyvalue 쌍의 바인딩 목록에서 사용자 지정 정렬
BindingList<KeyValuePair<int, string>> Homelist = new BindingList<KeyValuePair<int, string>>();
foreach (ListItem item in listBox2.Items)
{
Homelist.Add(new KeyValuePair<int, string>(item.Id, item.Name));
}
목록은 다음 키 (ID)와 값 (텍스트)
내가 처음 5 개 항목을 오름차순으로 정렬 할 같이 또한 나머지 항목 asc.the 정렬해야이있다 열쇠가 아니라 가치에 따라. 예 : 값이 4,5,8,7,6,10,9,3,2,1,22 인 경우 정렬 결과는 4,5,6,7,8,1,2,3이어야합니다. , 9,10,22. 좋은 생각이야?
해결 답 :
public int Compare(KeyValuePair<int,string> a, KeyValuePair<int,string> b)
{
return a.Value.CompareTo(b.Value);
}
List<keyvaluepair><int,>> Playinglist = new List<keyvaluepair><int,>>();
for (int i = 0; i < 5; i ++)
{
Playinglist.Add(Homelist[i]);
}
Playinglist.Sort(Compare);
List<keyvaluepair><int,>> Benchlist = new List<keyvaluepair><int,>>();
for (int i = 5; i < Homelist.Count(); i++)
{
Benchlist.Add(Homelist[i]);
}
Benchlist.Sort(Compare);
//union 2 lists
var unionedList = new List<keyvaluepair><int,>>();
unionedList.AddRange(Playinglist.Union(Benchlist));
Homelist.Clear();
for (int i = 0; i < unionedList.Count(); i++)
{
Homelist.Insert(i, unionedList[i]);
}
game.GetHomelist = Homelist;
음. 이제는 순서대로 나오게됩니다. 너무 어렵다면 목록을 두 개로 자르십시오. 따로 따로 정렬 한 다음 togther로 다시 결합하십시오. –
예를 들어 주시겠습니까? – Apollon
글쎄, 내 질문에 대답하지 않았다. –