본문 바로가기

c#17

C#에서 List를 Dictionary로 (feat. LINQ) C#에서 List를 Linq를 사용하여 Dictionary로 만들기. 예를들어 아래와 같은 class가 있다고 하자. public class MemberInfo{ public int Level{get; set;} public int Score{get; set; } public string name{get; set;} } 이러한 List 를, 등급을 기준으로 묶어서 보고싶다면.. 다음과 같이 작성하면 된다. private Dictionary convertToDictionary(List list){ var result = list.OrderBy(x => x.Level) .GroupBy(x => x.Level) .ToDictionary( x=> x.Level, x); return result; } 만약 저 목.. 2023. 3. 31.
C#에서 마샬링이 필요한 이유 C#에서 마샬링을 하는 방법은 요기.. https://gomnezip.tistory.com/372 C# 마샬링 - 구조체 C#에서 C++의 DLL을 호출할 경우 데이터를 주고받아야 한다. 그렇게 하기 위해서 여러가지 방법이 있지만, 우선 DLL을 만든 후, DllImport를 사용하여 전달하게 구성되었기에. 그에 맞는 방법으로.. C# gomnezip.tistory.com C#에서 마샬링을 왜 할까? 아니 마샬링(Marshalling)이 뭐지? 우선 마샬링을 검색해보면.. 네이버 사전 링크 : https://en.dict.naver.com/#/entry/enko/5bea9e86d2054c2d9dbf8bd0f2ec28a3 네이버 영어사전 미국/영국식 발음, 여러 종류의 출판사 사전 뜻풀이, 풍부한 유의어/.. 2023. 2. 16.
WPF - DataTemplate 우리가 컨트롤을 만들다 보면.. 가끔은 (아니 사실 거의 매번) UI control을 custom해주어야 한다. WPF에서는 커스텀 컨트롤을 하는 방법은 크게 두가지가 있다. 하나는 MFC시절부터 사용하던 역사적인 방법인(...) 기본 컨트롤을 상속받아서 만드는 방법이 있을 것이다. 이 방법은 입력에 따른 별도의 처리가 필요한 경우라면 사용을 고려하는 것이 좋다. (반드시라고 하기에는 좀 어려운 것이.. event handling을 통한 처리라는 방법도 있으니까. 물론, 이벤트 핸들링이 공통적으로 사용된다면? 고민해볼만 한 방법이 된다.) 우선 그 방법은 다음에 포스팅하도록 하고.. 오늘은 DataTemplate를 이용한 custom control을 만드는 방법에 대해 끄적인다. DataTemplate는.. 2022. 12. 26.
WPF란? - Windows Presentation Foundation WPF를 떠나 자바로 전향하면서 WPF에 대해 적기 위한 카테고리. C#개발자분들은 WPF는 한번쯤은 들어봤을 녀석. 나온지는 오래되었다. 내가 2009년에 WPF개발을 시작했으니.. 먼저.. WPF는 Windows Presentation Foundation임. 윈도우에서 표시되는 모든것의 기초다. UI를 위한 프레임워크. 매우 강력한 UI프레임워크다. 그때나 지금이나.. UI에 투자해야하는 시간이 엄청 많은게 클라이언트 개발인데.. (하지만 사람들은 UI를 쉽게보지...) WPF는 개발자들이 UI에 투자해야하는 고통을 획기적으로 줄여주었다. WPF는 .NET Framework위에서 돌아가므로 .NET Framework가 필요하다. (물론 WPF는 .NET Framework가 아닌 .NET에서도 살아있는.. 2022. 7. 29.
C# 마샬링 - 구조체 C#에서 C++의 DLL을 호출할 경우 데이터를 주고받아야 한다. 그렇게 하기 위해서 여러가지 방법이 있지만, 우선 DLL을 만든 후, DllImport를 사용하여 전달하게 구성되었기에. 그에 맞는 방법으로.. C#에서 -메소드 선언 [DllImport("$DLL파일명", CallingConvention=CallingConvention.Cdecl, Charset=CharSet.Ansi)] public static extern $반환타입 $메소드명($params) 위와 같이 선언하면 된다. 콜링컨벤션은 굳이 안해도 되는듯. charset은 나는 MBCS를 사용하느라 그냥 명시적으로 선언해 주었다. C++에서 #define DLLAPI extern "C" __declspec(dllexport) DLLAPI .. 2022. 7. 21.
CLR via C# chapter2. 빌드, 패키지, 배포, 그리고 app와 타입 관리 (3) 보호되어 있는 글 입니다. 2009. 9. 17.
728x90