>  기사  >  백엔드 개발  >  C#에서 Dictionary의 순서와 역순에 대한 자세한 설명

C#에서 Dictionary의 순서와 역순에 대한 자세한 설명

黄舟
黄舟원래의
2017-05-07 10:21:333959검색

C# .net 버전 3.5 이상에서 Linq가 도입된 이후로 사전 정렬은 SQL 데이터베이스 쿼리 문; 그러나 .net 2.0에서의 정렬은 좀 더 번거롭기 때문에 .net 3.5 및 2.0의 정렬 방법을 요약합니다.

1. 사전 사전 생성

객체

Dictionary가 웹사이트 페이지 트래픽을 저장하는 경우

key는 웹페이지입니다. 이름과 값은 웹페이지 방문 횟수에 해당하므로 int는 키로 사용할 수 없습니다. 웹페이지 이름만 사용할 수 있습니다. Dictionary 객체를 생성하고 데이터를 추가하는 방법은 다음과 같습니다. :

Dictionary<string, int> dic = new Dictionary<string, int>();
  dic.Add("index.html", 50);
  dic.Add("product.html", 13);
  dic.Add("aboutus.html", 4);
  dic.Add("online.aspx", 22);
  dic.Add("news.aspx", 18);

2. .net 3.5 이상에 대한 사전 정렬(예: linq 사전 정렬)

1. 값 값으로 사전 정렬

 private void DictonarySort(Dictionary<string, int> dic)
  {
    var dicSort = from objDic in dic orderby objDic.Value descending select objDic;
    foreach(KeyValuePair<string, int> kvp in dicSort)
      Response.Write(kvp.Key + ":" + kvp.Value + "<br />");
  }

결과 정렬:

index.html: 50

online.aspx: 22
news.aspx: 18
product.html: 13
aboutus.html: 4

위 코드는 내림차순(역순)입니다. 오름차순(역순)으로 정렬하려면

변수 dicSort 오른쪽에 있는 내림차순을 제거하면 됩니다.

2. C# 사전 키 정렬

Key로 정렬하려면 dicSort 변수 오른쪽의 objDic.Value를 objDic.Key로 변경하면 됩니다.

3. .net 2.0 버전 사전 정렬

1. 사전은 값별로 정렬됩니다(역순)

private void DictionarySort(Dictionary<string, int> dic)
  {
    if (dic.Count > 0)
    {
      List<KeyValuePair<string, int>> lst = new List<KeyValuePair<string, int>>(dic);
      lst.Sort(delegate(KeyValuePair<string, int> s1, KeyValuePair<string, int> s2)
      {
        return s2.Value.CompareTo(s1.Value);
      });
      dic.Clear();

      foreach (KeyValuePair<string, int> kvp in lst)
        Response.Write(kvp.Key + ":" + kvp.Value + "<br />");
    }
  }

결과 정렬:

index.html : 50

online.aspx: 22
news.aspx: 18
product.html: 13
aboutus.html: 4

순차 배열: s2.Value 변수만 반환합니다. .CompareTo(s1.Value);는 s1.Value.CompareTo(s2.Value);를 반환하도록 변경될 수 있습니다.

2. C# 사전 키 정렬(역순, 순차)

키를 기준으로 역순으로 정렬하려면 return s2.Value.CompareTo(s1.Value);를 return s2.Key.CompareTo(s1.Key)로 변경하면 됩니다. s2.Key.CompareTo(s1.Key);는 s1.Key.CompareTo(s2.Key);를 반환하도록 변경될 수 있습니다.

위 내용은 C#에서 Dictionary의 순서와 역순에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.