닷넷/C#
-
C# List<type> 중복제거닷넷/C# 2019. 4. 14. 21:33
List의 Distinct를 쓰면 된다. 단, List에 타입이 string이나 int 같이 속성이 하나일 때만 된다. 속성이 여러개이면 중복제거가 되지 않으므로 중복을 제거할 값의 타입으로 먼저 리스트를 만들고 값을 넣어 중복제거하고 다른 리스트에 담으면 된다. 다음은 카톡 대화내용 분석에서 방문자리스트를 만들 때 사용한 방법이다. // 방문자 이름만 담을 리스트 List list = new List(); for (int i = 3; i 0) { if (text[i].Substring(0, 1) == "[") { string[] s = text[i].Split(' '); try { if (s[1].IndexOf("[오") > -1) { list.Add(s[0]); } } catch { continue;..
-
Tizen C# load local image, res 폴더에 있는 이미지 읽기 (ImageSource.FromFile)닷넷/C# 2019. 1. 3. 11:41
타이젠 앱을 다 만들고 삼성 갤럭시 앱스에 판매등록 했었는데 인증심사에서 떨어졌다. 왜 그런고 하니 이미지 파일을 읽을 수가 없어 앱이 제대로 실행되지 않았다. 디버깅할 때야 파일 경로로 이미지를 선택할 수 있는데 실제 갤럭시 워치에서 앱이 실행되려면 이미지 앱 자체에서 불러올 수 있게 해야 했다. 타이젠에 추가된 언어는 c#보다는 자마린에 가까워서 내가 알던 방식으로는 리소스폴더에 접근할 수 없었고,구글링을 하며 이것 저것 해보아도 도저히 도저히 되지 않다가 한 달이 지나 잊고 있었다. 오늘에서야 그 방법을 찾을 수 있었다. https://stackoverflow.com/questions/44609222/image-in-tizen-mobile-is-not-visible 이미지 파일을 res 폴더에 넣고..
-
C# foreach DataRow in DataSet닷넷/C# 2018. 12. 11. 17:21
private void Example(){ SqlConnection sqlConnection = new SqlConnection("server=localhost;database=MyDatabase;User ID=uid;Password=pwd;"); SqlDataAdapter sqlAdapter = new SqlDataAdapter("SELECT ID, Name, Mobile FROM Users", sqlConnection); DataSet ds = new DataSet(); sqlAdapter.Fill(ds, "Users"); foreach (DataRow dr in ds.Tables["Users"].Rows) { Console.WriteLine(dr["ID"] + "\t" + dr["Name"]+ "\..
-
C# 웹통신 요청 및 응답 (WebRequest POST, WebResponse) (ContentType: application/x-www-form-urlencoded)닷넷/C# 2018. 11. 15. 10:08
private void HTTPPost(){ string sParam = "sParam1=value1&sParam2=value2"; string sUrl = "http://abc/web"; // 서버 접속 WebRequest webRequest = WebRequest.Create(sUrl); webRequest.Method = "POST"; // 데이터 전송 byte[] bytearry = Encoding.UTF8.GetBytes(sParam); webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = bytearry.Length; Stream stream = webRequest.GetRequestStr..
-
C# 우선순위 큐, Priority queue닷넷/C# 2018. 11. 7. 18:30
큐랑 스택을 섞어 쓸 방법이 어디 없을까 구글링해보다가 우선순위 큐라는 걸 알게 되었다. 학창시절, 자료구조 과목에선 안 배웠던 것 같은데.. 우선순위 큐란, 위키백과에 따르면 각 원소들이 우선순위를 가지며 높은 우선 순위를 가진 원소가 낮은 우선순위를 가진 원소보다 먼저 처리되고, 만약 두 원소가 같은 우선순위를 가진다면 큐에 의해서(저장된 순서대로) 처리 되는 자료구조를 말한다. 개념을 알았으면 구현을 할 차례! 큐나 스택은 Queue와 Stack이라는 (이름 그대로 알 수 있는) 클래스가 있어서 쉽게 구현할 수 있었으나 우선순위 큐는 그런 클래스가 존재하지 않았다. C#에서는 우선순위 큐를 어떻게 구현할 수 있을까? 힌트는 위키백과에서 찾을 수 있었다. 그렇게 스스로 구현하기 위해 코드를 작성하다가..
-
C# JSON POST and GET (정보 전달 및 확인)닷넷/C# 2018. 11. 2. 10:04
/* url = http://10.0.0.1 웹서버 주소 lblUrl.Text = { "key1":"value1", "key2":"value2", "key3":"value3" } JSON 문자열*/// JSON POST (정보 전달)private void JPOST(){ try { // JSON 데이터 전송 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ContentType = "application/json"; request.Method = "POST"; using (StreamWriter stream = new StreamWriter(request.GetRequestStream())) { stream.Write(lbl..
-
C# JSON 파싱하기닷넷/C# 2018. 10. 31. 12:11
2023.04.04 - [C#] - C# JSON 파일 읽기/쓰기 (Deserialize/Serialize) 비주얼스튜디오에 Newtonsoft.Json을 설치했다는 가정하에 c#에서 Json 파싱하는 법을 작성하도록 하겠습니다. 아직 설치 하지 못한 분은 아래 글에서 설치하기를 따라하시면 됩니다. 2018/10/26 - [프로그래밍/C#] - C# Json 파싱하기 전, 비주얼스튜디오 프로젝트에 Newtonsoft.Json 설치하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 using Newtonsoft.Json.Linq; private void JsonParse() { using (WebClient wc = n..
-
C# Json 파싱하기 전, 비주얼스튜디오 프로젝트에 Newtonsoft.Json 설치하기닷넷/C# 2018. 10. 26. 16:31
짤막 상식JSON이란? JSON (JavaScript Object Notation)은 사람이 읽을 수 있는 데이터로 교환하기 위한 표준 디자인입니다. JSON은 트리 구조로 작동하며 비교하자면 XML처럼 보이는데 XML보다 더 짧고 사용하기가 쉽습니다. JSON과 XML 구조 비교 JSON XML { "companys":{ "company1":"company name", "company2":[ { "name":"comany2 name" }, { "address":"seoul" }, { "tel":"012-3456"} ] } } company name comany2 name seoul 012-3456 Newtonsoft.Json 설치하기 1. 도구에 NuGet 패키지 관리자 > 솔루션용 NuGet 패키지 ..
-
C# (Windows 작업스케줄러를 사용하지 않기 위한...) 특정시간마다 이벤트를 실행시키는 방법닷넷/C# 2018. 10. 19. 11:49
Windows 작업 스케줄러를 이용하지 않고 특정 시간에만 이벤트 또는 메소드를 실행하게 할 수 있는 방법이 없을까 검색해보다가 특정 시간을 계산해서 그 시간에만 이벤트를 실행하는 방법을 찾았다. 예제 코드는 매일 새벽 3시에 이벤트를 실행시키는 타이머이다. 2022-04-22 16:45 현재 시간으로 부터 runAt까지의 남은 시간을 구해서 그 뒤에 타이머가 실행되게 하고 그 다음에는 매 24시간마다 한 번씩 실행 되게 하는 코드이다. 이때, "시"만을 기준으로 하다 보니 딱 3시 마다를 원하면 프로그램도 정각에 실행시켜야 하는 단점이 있어서 시 뿐만 아니라 분, 초 또한 현재시간에서 runAt까지 남은 분, 초도 같이 계산 될 수 있게 예제 코드를 수정 한다. using System.Timers; p..
-
C# [펌] Parallel.For 병렬 For문닷넷/C# 2018. 9. 27. 18:28
Paralle.For 사용방법병렬 포문 사용법 https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-write-a-simple-parallel-for-loopHow to: Write a Simple Parallel.For LoopHow to: Write a Simple Parallel.For Loop 9 minutes to read Contributors all This topic contains two examples that illustrate the ...docs.microsoft.com
-
C# [펌] TCP/IP환경에서 메시지 교환 원리닷넷/C# 2018. 8. 30. 18:22
TCP/IP환경에서 메시지 교환 원리2016.04.28 06:03 from 프로그래밍 일반/개발 도구 사용법 http://foranie0.tistory.com/199TCP/IP환경에서 메시지 교환 원리1. 서두 질문글 답변글 서버 플머가 아니라서 이런 것까지 정리할 생각은 없었는데 어제 술 마시다가 조상현 교수님이 만든 엔진에는 프로토콜 넘...foranie0.tistory.com1. 서두질문글답변글서버 플머가 아니라서 이런 것까지 정리할 생각은 없었는데 어제 술 마시다가 조상현 교수님이 만든 엔진에는 프로토콜 넘버를 기준으로 일일이 switch case 해주는 부분 없이 상속으로 처리 했다는 이야기를 듣고 소스를 까보는 김에 이것까지 작성 하게 되었다. (와중에 내 코드 일부가 틀린 것이 생각 나기도 ..
-
C# [펌] Thread 파라미터 전달닷넷/C# 2018. 8. 24. 16:52
이미 파라미터가 있는 메소드일 때 C#에서 Thread에 파라미터를 전달하는 방법에 대해,내가 정리해서 작성한 것보다 잘 쓰여진 글이 있어서 그대로 복사해왔다. C# Thread 클래스 파라미터 전달 http://www.csharpstudy.com/Threads/thread2.aspxThread 클래스(2) - C# 프로그래밍 배우기 (Learn C# Programming)C# Thread 클래스 파라미터 전달 Thread 클래스는 파라미터를 전달하지 않는 ThreadStart 델리게이트와 파라미터를 직접 전달하는 Parameter...www.csharpstudy.com Thread 클래스는 파라미터를 전달하지 않는 ThreadStart 델리게이트와 파라미터를 직접 전달하는 ParameterizedThr..
-
C# 숫자 세자리마다 콤마(쉼표)찍기닷넷/C# 2018. 8. 2. 16:51
C#에서 숫자 세자리마다 콤마(쉼표)찍는 방법 다음은 C#에서 숫자를 문자열로 바꾸고, 세자리 마다 콤마(쉼표)가 입력되게 하는 방법이다. int i = 100000000; string number = string.Format("{0:#,###}", i); 결과: 100,000,000 그런데 여기서 만약 i가 0 또는 null이라면 값이 공백으로 나온다. int i = 0; string number = string.Format("{0:#,###}", i); 결과: 공백이 아닌 0으로 나오게 하려면 다음과 같이 하면 된다. int i = 0; string number = string.Format("{0:#,##0}", i); 결과: 0