C\#에서 Dictionary 정렬 방식 의 실현
8494 단어 C#Dictionary<TKeyTValue>정렬
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharp Dictionary
{
[Serializable]
public class CustmonizedClass
{
public string stuName { get; set; }
public int stuAge { get; set; }
public string stuSex { get; set; }
public double stuScore { get; set; }
}
}
DictionaryDictionary 의 Key 값 오름차 순 으로 정렬(Orderby),내림차 순 으로 정렬(Orderby Descending):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharp Dictionary
{
public class Program
{
static void Main(string[] args)
{
CustmonizedClass cn1 = new CustmonizedClass();
cn1.stuName = " ";
cn1.stuAge = 18;
cn1.stuSex = " ";
cn1.stuScore = 89.5;
CustmonizedClass cn2 = new CustmonizedClass();
cn2.stuName = " ";
cn2.stuAge = 19;
cn2.stuSex = " ";
cn2.stuScore = 88.5;
CustmonizedClass cn3 = new CustmonizedClass();
cn3.stuName = " ";
cn3.stuAge = 17;
cn3.stuSex = " ";
cn3.stuScore = 89.5;
Dictionary<int, CustmonizedClass> dic1 = new Dictionary<int, CustmonizedClass>();
dic1.Add(3, cn1);
dic1.Add(1, cn2);
dic1.Add(2, cn3);
// dic1.Add()
Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(p=>p.Key).ToDictionary(p => p.Key, o => o.Value);
foreach (KeyValuePair<int, CustmonizedClass> item in dic1_SortedByKey)
{
Console.WriteLine("Key:{0} ; Value: name:{1}, age:{2}, sex:{3}, score:{4} ",
item.Key,item.Value.stuName,item.Value.stuAge,item.Value.stuSex,item.Value.stuScore);
}
Console.ReadLine();
}
}
}
Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(p=>p.Key).ToDictionary(p => p.Key, o => o.Value);
결과 캡 처:내림차 순 정렬:
Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderByDescending(p => p.Key).ToDictionary(p => p.Key, o => o.Value);
결과 캡 처:Dictionary 의 Value 값 의 특정한 속성 에 따라 오름차 순 정렬(Orderby),내림차 순 정렬(Orderby Descending):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharp Dictionary
{
public class Program
{
static void Main(string[] args)
{
CustmonizedClass cn1 = new CustmonizedClass();
cn1.stuName = " ";
cn1.stuAge = 18;
cn1.stuSex = " ";
cn1.stuScore = 89.5;
CustmonizedClass cn2 = new CustmonizedClass();
cn2.stuName = " ";
cn2.stuAge = 19;
cn2.stuSex = " ";
cn2.stuScore = 88.5;
CustmonizedClass cn3 = new CustmonizedClass();
cn3.stuName = " ";
cn3.stuAge = 17;
cn3.stuSex = " ";
cn3.stuScore = 89.5;
Dictionary<int, CustmonizedClass> dic1 = new Dictionary<int, CustmonizedClass>();
dic1.Add(3, cn1);
dic1.Add(1, cn2);
dic1.Add(2, cn3);
// dic1.Add()
//Key
//Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(p=>p.Key).ToDictionary(p => p.Key, o => o.Value);
//Key
//Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderByDescending(p => p.Key).ToDictionary(p => p.Key, o => o.Value);
//Value stuAge
Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(o => o.Value.stuAge).ToDictionary(p => p.Key, o => o.Value);
foreach (KeyValuePair<int, CustmonizedClass> item in dic1_SortedByKey)
{
Console.WriteLine("Key:{0} ; Value: name:{1}, age:{2}, sex:{3}, score:{4} ",
item.Key,item.Value.stuName,item.Value.stuAge,item.Value.stuSex,item.Value.stuScore);
}
Console.ReadLine();
}
}
}
관건 은 이 문장 을 수정 하 는 것 이다.
Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(o => o.Value.stuAge).ToDictionary(p=>p.Key,o=>o.Value);
결과 캡 처:혼합 정렬:EXCEL 에서 첫 번 째 열 로 올 라 간 다음 세 번 째 열 로 올 라 간 다음...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharp Dictionary
{
public class Program
{
static void Main(string[] args)
{
CustmonizedClass cn1 = new CustmonizedClass();
cn1.stuName = " ";
cn1.stuAge = 18;
cn1.stuSex = " ";
cn1.stuScore = 89.5;
CustmonizedClass cn2 = new CustmonizedClass();
cn2.stuName = " ";
cn2.stuAge = 19;
cn2.stuSex = " ";
cn2.stuScore = 88.5;
CustmonizedClass cn3 = new CustmonizedClass();
cn3.stuName = " ";
cn3.stuAge = 17;
cn3.stuSex = " ";
cn3.stuScore = 89.5;
Dictionary<int, CustmonizedClass> dic1 = new Dictionary<int, CustmonizedClass>();
dic1.Add(3, cn1);
dic1.Add(1, cn2);
dic1.Add(2, cn3);
// dic1.Add()
//Key
//Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(p=>p.Key).ToDictionary(p => p.Key, o => o.Value);
//Key
//Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderByDescending(p => p.Key).ToDictionary(p => p.Key, o => o.Value);
//Value stuAge
//Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(o => o.Value.stuAge).ToDictionary(p => p.Key, o => o.Value);
// linq
//Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(o => o.Value.stuScore).ThenByDescending(o=>o.Value.stuAge).ToDictionary(p=>p.Key,o=>o.Value);
//linq
var dic1_SortedByKey = from n in dic1
orderby n.Value.stuScore, n.Value.stuAge descending
select n;
foreach (KeyValuePair<int, CustmonizedClass> item in dic1_SortedByKey)
{
Console.WriteLine("Key:{0} ; Value: name:{1}, age:{2}, sex:{3}, score:{4} ",
item.Key,item.Value.stuName,item.Value.stuAge,item.Value.stuSex,item.Value.stuScore);
}
Console.ReadLine();
}
}
}
Dictionary<int, CustmonizedClass> dic1_SortedByKey = dic1.OrderBy(o => o.Value.stuScore).ThenByDescending(o=>o.Value.stuAge).ToDictionary(p=>p.Key,o=>o.Value);
linq 구문 과 같 습 니 다:
var dic1_SortedByKey = from n in dic1
orderby n.Value.stuScore, n.Value.stuAge descending
select n;
결과 캡 처:C\#에서 Dictionary
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.