반응형 프로그래밍/C#117 C# list 랜덤(random) 하게 섞기 C#에서 Linq로 랜덤 하게 섞기 list의 요소들을 랜덤 하게 섞고 싶을 때 Linq OrderBy()에서 random 객체의 Next()를 호출하면 간단하게 해당 요소들을 섞을 수 있다. using System; using System.Collections.Generic; using System.Linq; class Program { static void Main(string[] args) { var list = new List() { 1, 2, 3, 4, 5 }; var random = new Random(); var randomized = list.OrderBy(x => random.Next()); foreach (var i in randomized) { Console.WriteLine(i); .. 2024. 3. 21. C# 비트 연산자를 이용한 홀수짝수 판별, 절반으로 나누기 함수 구현 C# 비트 연산자(Bitwise Operator) 활용하기 using System; class Program { static void Main(string[] args) { var input = Console.ReadLine(); var num = Int32.Parse(input); Console.WriteLine($"{num} is {IsOdd(num)}"); Console.WriteLine($"{num} half = {Half(num)}"); } static string IsOdd(int n) { return (n & 1) == 0 ? "even" : "odd"; } static int Half(int n) { return n >> 1; } } 홀수 짝수 판별의 경우, 0001번째 자리와 비교해서 곱.. 2024. 3. 18. C# char를 int로 바꾸는데 '0'을 빼는 이유 char를 int로 바꾸고 싶다 문자열 형식으로 된 숫자를 int 형식으로 변환하고 싶을 때, Int32.Parse()를 사용해도 되지만 해당 메서드를 사용하지 못한다면 어떻게 변환해야 하는가? string 형식의 문자열의 각 자릿수를 받아서 '0'을 빼주면 된다. '0'을 빼주는 이유는 char가 아스키코드(ASCII)로 되어있기 때문에 문자와 숫자 사이의 차이(offset)를 맞춰주기 위해서다. 아스키코드 '0'의 값 : 48 예시 : 아스키코드 '5'의 값 : 53 - 48 = 5 이런 식으로 아스키코드 '5'가 숫자 5로 변환이 가능하다. 예제 코드 using System; class Program { static void Main(string[] args) { var input = Console.. 2024. 2. 26. C# StringBuilder에 대해서 String은 불변(Immutable)이다 String은 참조 타입이면서 불변이다. 데이터 변경때마다 힙에 새로운 메모리 공간이 할당되어야 한다. 그렇기 때문에 잦은 데이터 변경은 시스템에 부하를 가져온다. C# String은 참조 타입(Reference type)이면서 불변(Immutable)하다. string vs StringBuilder 예를 들어, int의 경우를 살펴보자. int는 값 타입(value type)이면서 가변(mutable)이다. 값 타입은 데이터 변경 시에 새로운 메모리 할당이 일어나지 않는다. 이미 생성된 메모리의 jettstream.tistory.com 참조 타입이면서 가변(Mutable)인 StringBuilder 그래서 잦은 문자열 변경이 예상된다면 StringBuilder.. 2024. 2. 21. C# 웹 인증(Authentication) & 권한(Authorization) 코드 작성하기 C#으로 웹 인증 코드 작성하기C# 프로젝트를 진행할 때 인증 관련된 코드를 작성하는 일이 생긴다면 C#이 제공하는 기능을 사용해서 좀 더 쉽게 인증 관련 코드를 작성하고 처리하는 것이 가능하다. 웹 인증을 위해서는 아래의 두 가지를 구현해야 한다. 인증(Authentication) vs 권한(Authorization)인증(authentication) : 유저가 누구인지에 대해서 검증한다. 보통 토큰이 유효(valid)한 지 검증한다.권한(authorization) : 유저가 해당 행동을 수행하는 것이 가능한지를 결정하는(determining) 프로세스이다.사용자 정의 인증 스키마(Custom authentication schemes)인증 스키마는 반드시 프레임워크 startup 파일에 등록되어야 한다... 2024. 2. 19. C# Value Type vs Reference Type 값 타입(Value Type) 스택 메모리에 저장 데이터를 직접 가지고 있음 기본 타입들 대부분이 값 타입 (Booleans, Characters, DateTime, TimeSpan, 구조체) 값 타입 변수를 복사하면 완전히 새로운 변수가 생기고 이는 기존 변수와 연관이 없다. 값 타입 예제 int a = 10; int b = a; b = 20; Console.WriteLine(a); // Output : 10 Console.WriteLine(b); // Output : 20 참조 타입(Reference Type) 힙 메모리에 저장 참조 타입 생성 시 힙에 메모리가 할당되며 변수의 메모리 주소가 저장됨 Class, Interfaces, Delegates, 배열 등 참조 타입 변수를 복사하면 같은 데이터를.. 2024. 2. 15. 이전 1 ··· 4 5 6 7 8 9 10 ··· 20 다음