C#_ Unity Game programming

C# - DB관리를 위한 LINQ

doyyy_0 2024. 4. 24. 23:27

LINQ(Language Integrated Query)는 C# 프로그래밍 언어에서 데이터 컬렉션을 쉽게 쿼리하고 변환할 수 있는 강력한 도구입니다. LINQ를 사용하여 배열이나 리스트 같은 컬렉션에서 데이터를 선택, 필터링, 정렬할 수 있습니다. 일반적으로 DB를 배울 때 MySql을 배우는데 Sql언어와 매우 유사합니다.

 

1. Select: Select를 사용하면 컬렉션의 각 요소를 변형할 수 있습니다.

var numbers = new[] { 1, 2, 3, 4, 5 };
var squares = numbers.Select(x => x * x); // 각 숫자의 제곱

 

2. Where: Where를 사용하면 조건에 맞는 요소만 필터링할 수 있습니다.

var evens = numbers.Where(x => x % 2 == 0); // 짝수만 필터링

 

3. 오름차순 정렬 (OrderBy): 컬렉션을 특정 기준에 따라 오름차순으로 정렬합니다.

var ascending = numbers.OrderBy(x => x); // 오름차순 정렬

 

4. 내림차순 정렬 (OrderByDescending): 컬렉션을 특정 기준에 따라 내림차순으로 정렬합니다.

var descending = numbers.OrderByDescending(x => x); // 내림차순 정렬

 

이러한 기능을 사용하여 데이터를 효율적으로 처리하고, 코드의 가독성을 높이며, 더 함수형적인 접근을 할 수 있습니다. LINQ는 데이터 작업을 간결하고 표현력 있게 만들어 줍니다.

 

5. 혼합 사용 : 여기 LINQ를 사용하여 Select, Where, OrderBy를 동시에 사용하는 예시 코드를 보여드립니다. 이 예제에서는 간단한 사용자 목록에서 특정 조건을 만족하는 사용자를 선택하고 그 결과를 정렬하는 방법을 보여줍니다.

class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}

List<User> users = new List<User>
{
    new User { Name = "Alice", Age = 25 },
    new User { Name = "Bob", Age = 30 },
    new User { Name = "Charlie", Age = 35 }
};

var filteredUsers = users
    .Where(user => user.Age > 25) // 나이가 25살 초과인 사용자 필터링
    .OrderBy(user => user.Age) // 나이로 오름차순 정렬
    .Select(user => user.Name); // 사용자의 이름 선택

foreach (var name in filteredUsers)
{
    Console.WriteLine(name);
}

 

이 코드는 User 객체의 리스트에서 나이가 25세를 초과하는 사용자들만 필터링하고, 그 결과를 나이 순으로 오름차순 정렬한 후 사용자의 이름만 선택하여 출력합니다.