닷넷
-
C# A리스트에서 B리스트에 있는 것을 제외하는 방법(LINQ)닷넷/C# 2021. 7. 13. 11:34
다음은 C#에서 LINQ를 활용하여 A리스트에서 B리스트에 있는 것을 제외하는 방법이다. 수학적 표현으로는 차집합이다. List list = listA.Where(x=> !listB.Select(y=> y.id).Contains(x.id)).ToList(); 이것을 반대로 하면 A리스트에서 B리스트에 있는 것만, 교집합이 된다. List list = listA.Where(x=> listB.Select(y=> y.id).Contains(x.id)).ToList(); 그 외에도 Except, Any, SequenceEqual 등을 이용한 방법이 있으며 다음의 사이트에서 확인할 수 있다. C# 두 개의 List를 비교하는 가장 빠른 방법 c# — 두 개의 List 를 비교하는 가장 빠른 방법 두 가지 대규모 ..
-
C# WinForms DevExpress GridControl 체크박스칼럼에서 체크한 것이 고정이 안 될 때, When the check is not fixed in the check column닷넷/WinForms 2021. 7. 7. 11:00
DevExpress의 GridControl에서 칼럼 하나를 체크박스칼럼으로 만들고, 칼럼의 UnboundType을 Bound로 설정하고, FieldName이 checkcolumn이라고 하면 gridControl.DataSource = list 일때, list.checkcolumn이 있으면 bound 된 값대로 false 혹은 true를 가지게 되어 2021.06.14 - [프로그래밍/C# (WinForms, ASP.NET)] - DevExpress GridControl에서 셀 편집(SetRowCellValue)이 되지 않을 때, 체크가 안 될 때 등 앞서 포스팅 한대로 설정했다는 가정하에 체크박스칼럼의 셀에서 체크박스에 체크하면 체크하는 대로 체크를 하지 않으면 하지 않은대로 설정 된다. 그런데 바운드 ..
-
C# WinForms DevExpress GridControl에서 셀 편집(SetRowCellValue)이 되지 않을 때, 체크가 안 될 때 등닷넷/WinForms 2021. 6. 14. 16:53
DataGridView 대신에 데브익스프레스에서 제공해주는 GridControl를 사용하면 편리한 점이 많아 사용하고 있다. 그런데 하나의 칼럼을 RepositoryItemCheckEdit으로 설정해 두었는데 체크하려고 클릭하면 작동을 하지 않고, 아래의 코드처럼 SetRowCellValue도 먹지 않는다. private void CheckAll() { GridColumn selectColumn = this.gridView1.Columns.ColumnByName("cSelect"); for (int i = 0; i < this.gridView1.DataRowCount; i++) { this.gridView1.SetRowCellValue(i, selectColumn, true); } } 한참을 헤맨 것 같..
-
C# 네이버 지도 API(AI Naver-Directions 5)를 이용해서 거리 구하기닷넷/C# 2021. 5. 13. 18:25
단순히 좌표를 가지고 출발지와 도착지의 차익을 구하는 건 실제 사람이 겪는 거리와 다르다. 따라서 거리를 계산하려면 도로상황과 여러 변수들을 생각해서 계산이 이루어져야 한다. 그러나 일개 개인이 그것을 하기에는 많이 어렵다. 그러나 또 한 편으로는 네이버나 카카오에서 충분히 그런 자료들을 만들어놨음을 그들의 플랫폼을 살펴보면 충분히 알 수 있는 사실이다. (비용만 지불하면 다 되는 세상이다.) 그 중에서 C#에서 네이버 지도 API 중 Directions 5 혹은 15를 사용하는 방법에 대해 기술한다. * 상세 API 문서는 네이버 클라우드 플랫폼에서 제공 된다. driving - Directions 5 쿠키 제공 동의 당사는 고객님의 브라우징 기반 정보를 바탕으로 관련 정보 및 광고 제공을 위하여 지식..
-
C# 폼에서 제목표시줄을 클릭했을 때 클릭이벤트가 발생되게 하는 방법닷넷/WinForms 2021. 5. 13. 18:12
Form에서 Click 이벤트든 Mouse 이벤트든 폼을 클릭했을 때 제목표시줄을 클릭하는 건 반응을 안 한다. 다음 코드를 추가하면 폼에서 제목표시줄을 클릭했을 때의 상황을 코딩할 수 있다. const int WM_NCLBUTTONDOWN = 0x00A1; protected override void WndProc(ref Message m) { base.WndProc(ref m); // no client area if (m.Msg == WM_NCLBUTTONDOWN) { //select tittle area only If (){ this.Cursor = new Cursor(Cursor.Current.Handle); MessageBox.Show("Click"); //} } } 참고로 이 코드는 제목표시줄을..
-
asp.net mvc File download (파일 다운로드)닷넷/ASP.NET MVC 2021. 2. 23. 17:36
asp.net mvc 사이트에서 다운로드 버튼을 누르면 파일을 다운로드 받을 수 있게 하려면 index.cshtml에서 (혹은 파일 다운로드가 존재 할 cshtml) 엑셀서식 다운로드 HomeController.cs에서 (혹은 해당 액션과 연결된 Controller) public ActionResult DownloadFile(string filePath) { // 다운로드 되어야 할, 서버에 존재하는 파일 경로 string fullName = Server.MapPath("~/Files/" + filePath); byte[] fileBytes = GetFile(fullName); return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet..
-
asp.net mvc ajax에서 controller로 post 한 후 controller에서 ajax로 성공 또는 오류 메시지 리턴하는 방법닷넷/ASP.NET MVC 2021. 2. 17. 18:03
How to return string message after post using ajax call in ASP.NET MVC ASP.NET MVC에서 ajax 호출을 사용하여 게시 후 문자열 메시지를 반환하는 방법 = ajax에서 controller로 post 한 후 controller에서 ajax로 성공 또는 오류 메시지 리턴하는 방법 https://www.codeproject.com/Questions/1182026/How-to-return-string-message-after-post-using-ajax How to return string message after post using ajax call in ASP.NET MVC - CodeProject CodeProject, 20 Bay Stree..
-
C# 문자열을 문장으로 나누기 (Split('')할 때 'string'에서 'char'(으)로 변환할 수 없습니다. 해결 방법)닷넷/C# 2020. 11. 11. 10:29
string characterString = "123,456,789,000,000"; string[] splitCharacter = characterString.Split(','); // splitCharacter[0] : 123 // splitCharacter[1] : 456 // splitCharacter[2] : 789 // splitCharacter[3] : 000 // splitCharacter[4] : 000 2019/06/19 - [프로그래밍/C#] - C# 문자열을 열 글자씩 쪼개기, 문자열 자르기 C# 문자열을 열 글자씩 쪼개기, 문자열 자르기 텍스트박스나 문자열에 줄바꿈없이 문자들이 나열되어 있을 때 줄바꿈을 주기위해 몇 글자마다 줄바꿈을 줄 것인지에 대한 방법이다. 예시 코드에는 10..
-
C# foreach 루프를 LINQ로 변환하는 아주 쉬운 방법닷넷/C# 2020. 10. 16. 15:41
내용: IEnumerable을 사용하는 foreach 루프를 LINQ 쿼리 또는 LINQ 호출 양식(LINQ 메서드라고도 함)으로 쉽게 변환할 수 있습니다. 시기: IEnumerable을 사용하는 foreach 루프가 있고 이 루프를 LINQ 쿼리로 읽으려고 합니다. 이유: foreach 루프가 아닌 LINQ 구문을 사용하고 싶습니다. LINQ를 사용하면 쿼리가 C#의 고급 언어 구문이 됩니다. LINQ는 파일의 코드양을 줄이고, 코드를 읽기 쉽게 하며, 다른 데이터 소스가 유사한 쿼리 식 패턴을 갖도록 할 수 있습니다. 참고 LINQ 구문은 일반적으로 foreach 루프보다 효율이 떨어집니다. LINQ를 사용하면 코드의 가독성은 좋아지는 대신 성능이 떨어질 수 있다는 점을 알고 있는 것이 좋습니다. f..
-
C# 윈폼에서 배경 불투명도 조절하기 WinForms Opacity닷넷/WinForms 2020. 9. 30. 01:22
C#에서 윈폼에서 원하는 부분을 투명하게 하는 방법에 대해 예전에 포스팅했었다. 2016/07/19 - [프로그래밍/C#] - C# WindowsForm에서 배경 투명하게 하는 방법 C# WindowsForm에서 배경 투명하게 하는 방법 WindowsForm의 특정부분만 투명하게 하는 방법은 폼 속성의 TransparencyKey을 이용하면 된다. 예를 들어 FormBorderStyle을 None으로 하고 배경이미지를 넣었을 경우에 아래와 같이 이미지 외의 배경이 폼색 jasmintime.com 이 방법은 투명하게만 만들 수 있는 방법이어서 반투명 혹은 투명도를 세밀하게 조절할 때 이 방법은 옳지 않다. 윈폼이나 컨트롤의 배경을 투명하게만 하는 것이 아니라 불투명도를 세밀하게 조절하는 방법은 다음과 같다..
-
C# 시간 계산 (DateTime Add함수 월, 일, 시, 분 더하기 빼기)닷넷/C# 2020. 9. 11. 02:04
C# 시간 계산 C#의 DateTime함수의 Add함수 사용법 기준 날짜에서 월, 일, 시, 분 더하기 빼기 using System; namespace Test { class Program { static void Main(string[] args) { // 현재 날짜 및 시간 DateTime now = DateTime.Now; // 1달 후 DateTime dt1Mp = now.AddMonths(1); // 1달 전 DateTime dt1Mm = now.AddMonths(-1); // 1일 후 DateTime dt1Dp = now.AddDays(1); // 1일 전 DateTime dt1Dm = now.AddDays(-1); // 1시간 후 DateTime dt1Hp = now.AddHours(1); ..
-
C# 텍스트파일 읽기 응용편: 텍스트파일에서 해당 문자가 있는지 확인하기닷넷/C# 2020. 3. 29. 11:12
2018/03/14 - [프로그래밍/C#] - C# 텍스트파일 읽기 이전글에 C#에서 텍스트파일을 읽는 방법에 대해 적었었다. 이 것을 응용하면 텍스트파일에 해당 문자가 있는지 없는지 확인(체킹)하는 메소드를 만들 수 있다. // 라인(한 줄) == 찾는 텍스트 일 때 private bool FindLineText(string text) { bool b = false; try { string filename = "D:\\test.txt"; using (StreamReader sr = new StreamReader(filename)) { string line; // 텍스트파일 한줄씩 읽기 while ((line = sr.ReadLine()) != null) { // 해당 문자가 있으면 브레이크 if (li..
-
C# 네이버 블로그 MetaWeblog API로 글 작성하기 (with XML-RPC)닷넷/C# 2020. 3. 22. 17:21
네아로가 갑자기 되지 않아서 프로그램으로 네이버 블로그에 포스팅을 할 수 없게 되었다. 당황하지 않고 다른 방법을 찾아보았다. XML-RPC라는 방법을 통해 포스팅하는 방법이 있었고, 그것을 쉽게 사용할 수 있게 해주는 API는 MetaWeblog API라는 이름을 가진 것을 알 수 있었다. 사용방법은 다음과 같다. 1. 블로그 API 사용 신청 및 암호발급받기 1) 내 네이버 블로그에서 관리를 클릭한다. 2) 전체보기에서 글쓰기 API 설정을 클릭한다. 3) API사용을 신청하고(금방 된다) API연결정보에서 API연결 암호를 메모해 둔다. 2. 프로젝트에서 사전작업 1) 비주얼스튜디오 프로젝트에서 XML-RPC를 설치해야 한다. [도구] - [NuGet 패키지 관리자] - [솔루션용 NuGet 패키지..
-
C# 난수, 랜덤 Random 사용법 (+ 문자열 배열에서 랜덤으로 출력하기)닷넷/C# 2020. 3. 9. 18:58
Random은 무작위의 숫자를 발생시키는 함수이다. 사용방법 1. 정수(int) private void intRandom() { Random random = new Random(); int min = int.Parse(textBoxMin.Text); int max = int.Parse(textBoxMax.Text); // 음수가 아닌 임의의 정수 iValue = random.Next(); listBoxInt.Items.Add("Next() : " + iValue.ToString()); // maxValue보다 작은 음수가 아닌 임의의 정수 iValue = random.Next(max); listBoxInt.Items.Add("Next(max) : " + iValue.ToString()); // minVa..
-
C# 번역 파파고 API 사용하기 (영어를 한글로, 한글을 영어로 번역)닷넷/C# 2020. 3. 3. 13:51
구글 번역기 API는 연동을 다 했으니까 이제 파파고를 연동할 차례! 네이버 계정이 있다는 가정 하에 네이버 디벨로퍼(네이버 개발자센터)에 들어가서 로그인을 한다. 그 다음 Application에서 애플리케이션 등록을 클릭한다. 애플리케이션 이름은 아무거나 입력하고, 사용 API에서 Papago 번역을 선택한다. 환경은 앱으로 만드는게 아니므로 WEB 설정을 선택 한 다음 웹 서비스 URL은 가지고 있는 도메인으로 입력하였는데 네아로를 사용하며 이것저것 테스트해봤을 때 실제 사용되고 있는 도메인이면 아무거나 사용해도 문제는 없었으므로 도메인이 없는 경우 티스토리 혹은 네이버 도메인으로 해도 될 듯. 모든 것이 입력이 다 되었으면 [등록하기] 클릭 내 애플리케이션에서 방금 등록한 것을 클릭하면 Client..