C#에서 Dictionary를 사용하면서 Enum을 Key로 할때가 종종 있다. 그때마다 Boxing과 UnBoxing으로 인해
성능저하 이슈로 찜찜했는데, 마침 좋은 강좌가 있어 link해 둔다.
사용법
public class RemoteInfo
{
public int SVR_ID;
public string SVR_IP;
public string SVR_IP;
}
public enum SvrID
{
ID1 = 1,
ID2,
ID3
}
public static class GlobalValues
{
//EnumDictionary dictionary 구현 class를 전역으로 선언
public EnumDictionary<SvrID, RemoteInfo> Remotes = new EnumDictionary<SvrID, RemoteInfo>();
}
private void InitDictionary()
{
RemoteInfo rm1 = new RemoteInfo();
rm1.SVR_ID = Convert.ToInt32(SvrID.ID1);
rm1.SVR_IP = "192.168.0.25";
rm1.SVR_NM = "테스트1";
GlobalValues.Remotes.Add(rm1);
RemoteInfo rm2 = new RemoteInfo();
rm2.SVR_ID = Convert.Int32(SvrID.ID2);
rm2.SVR_IP = "192.168.0.26";
rm2.SVR_NM = "테스트2";
GlobalValues.Remotes.Add(rm2);
RemoteInfo rm3 = new RemoteInfo();
rm3.SVR_ID = Convert.Int32(SvrID.ID3);
rm3.SVR_IP = "192.168.0.27";
rm3.SVR_NM = "테스트3";
GlobalValues.Remotes.Add(rm3);
}
접근
RemoteInfo test = GlobalValues.Remotes[SvrID.ID1];
사용법은 기존이랑 동일~~
강좌 주소
https://www.slideshare.net/devcatpublications/enum-boxing-enum-ndc2019
샘플 github 주소
https://github.com/netics01/EnumDictionary
'개발언어 > .NET' 카테고리의 다른 글
WebAPI token 획득시 404(Not found) 오류 처리 (0) | 2021.04.13 |
---|---|
Entity Framework DbFunctions.Like를 찾을 수 없습니다. (0) | 2021.04.01 |
형식 이니셜라이저에서 예외를 throw 했습니다. Exception 처리 (0) | 2021.03.19 |
C# string 객체 문자열 배열단위 Split 그리고 Join 처리 (0) | 2021.03.12 |
byte UTF8Encoding시 OOM(OutOfMemory) 오류 발생 (0) | 2021.01.29 |