본문 바로가기

C# 문법

[C#] Property를 LINQ방식으로 표현

Property를 LINQ방식으로 표현

경험

  • 클래스에 Property를 선언하고 사용하다 보면 Linq를 자주 사용하게 됩니다. Property를 Linq방식으로 표현하는 다양한 방식을 알아보겠습니다.

1. Class에 Property 선언 방법

1.1 기본 Property 선언

public class Student
{
    private string _name { get; set; }

    public string Name 
    {
        get
        {
            return _name;
        }
        set
        {
            _name = value;
        }
    }
}

1.2 Linq Style 선언 1

public class Student
{
    private string _name { get; set; }

    public string Name 
    {
        get => _name;
        set => _name = value;     
    }
}

1.3. Linq Style 선언2 (Get / Set 단일 사용 시)

public class Student
{
    private string _name { get; set; }

    // Get만 사용 할 경우
    public string Name => _name;

    // Set만 사용 할 경우
    public string Name => _name = value;
}

2 Linq 활용

public void Run()
{
    List<PersonalInfo> pList = CreateInfo();
    //일반적으로 사용하는 방법
    //만약 수원사는 사람의 정보를 얻고 싶다면?
    var pInfo = pList.Where(f => f.City.Equals("수원")).FirstOrDefault();
    //FirstOrDefault() => 조건에 해당하는 1개만 찾는다 만약 없으면 null
    if (pInfo != null)
        Console.WriteLine($"{pInfo.Name} : {pInfo.Age} , {pInfo.City}");
}
public List<PersonalInfo> CreateInfo()
{
    PersonalInfo p1 = new PersonalInfo() { Name = "춘남", Age = 33, City = "수원" };
    PersonalInfo p2 = new PersonalInfo() { Name = "추남", Age = 33, City = "군포" };
    return new List<PersonalInfo>() { p1, p2 };
}
public class PersonalInfo
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
}

결과

춘남 : 33 , 수원