[C# 문법] C# Enum 열거형 LINQ 사용하기
- C#/C# 문법
- 2021. 11. 10. 18:56
소개
- 안녕하세요. 오늘은 C# 문법에 대해서 학습해 보려고 합니다.
- 그 중에서도 Enum 열거형을 이용해 LINQ 구문을 사용하는 방법에 대해서 알려 드리려고 합니다.
- 그럼 예제 코드를 어떻게 사용하는지 보여 드리도록 하겠습니다.
예제 코드
using System;
using System.Collections.Generic;
using System.Linq;
namespace test
{
public enum Fruits { Banana, Apple, Peach, Mango };
class Program
{
static void Main(string[] args)
{
string[] sourceFruits = { "Banana", "Peach", "Mango" };
List<string> fruitDatas = new List<string>();
AddData(ref fruitDatas, sourceFruits, typeof(Fruits));
foreach (var item in fruitDatas)
{
Console.WriteLine($"과일 정보 = {item}");
}
fruitDatas.Clear();
LinqAddData(ref fruitDatas, sourceFruits, typeof(Fruits));
Console.WriteLine();
Console.WriteLine();
foreach (var item in fruitDatas)
{
Console.WriteLine($"과일 정보 = {item}");
}
}
/// <summary>
/// LINQ 사용 안한 메서드
/// </summary>
/// <param name="list"></param>
/// <param name="sourceItem"></param>
/// <param name="type"></param>
public static void AddData(ref List<string> list, string[] sourceItem, Type type)
{
var enumValues = Enum.GetValues(type);
for(int index = 0; index < sourceItem.Length; index++)
{
foreach (var fruit in enumValues)
{
if (fruit.ToString().Contains(sourceItem[index]))
{
list.Add(fruit.ToString());
}
}
}
}
/// <summary>
/// LINQ 사용한 메서드
/// </summary>
/// <param name="list"></param>
/// <param name="sourceItem"></param>
/// <param name="type"></param>
public static void LinqAddData(ref List<string> list, string[] sourceItem, Type type)
{
// Enum LINQ 사용하기
List<string> enumValues = Enum.GetNames(type).ToList();
list.AddRange(enumValues.Where(fruit => sourceItem.Contains(fruit)));
}
}
}
- 2중 for문을 Linq를 이용하여 2줄로 바꾸었습니다.
- 결과는 아래와 같이 동일하게 나오는 것을 확인할 수 있습니다.
실행 결과
과일 정보 = Banana
과일 정보 = Peach
과일 정보 = Mango
과일 정보 = Banana
과일 정보 = Peach
과일 정보 = Mango
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] Reflection - Class Property 개수 확인 및 반복문 사용하기 (0) | 2021.11.24 |
---|---|
[C# 문법] C# 어셈블리 버전 구하는 방법 (0) | 2021.11.14 |
[C#] C# 부하 측정 - 벤치마크 닷넷 사용방법 (0) | 2021.11.09 |
[C# 문법] ObservableCollection 정렬하기 (0) | 2021.11.01 |
[C# 문법] C# LINQ Select 구문 메서드 방식으로 사용하기 (0) | 2021.10.18 |
이 글을 공유하기