▶ Goal
Enum 열거형 내의 Data를 출력 하기 위해선 Enum 내의 index를 for - foreach문을 이용해서
출력 했었는데, LINQ 문을 이용하여 Code를 간결하게 구현하도록 하겠습니다.
[ CODE ]
using System;
using System.Collections.Generic;
using System.Linq;
namespace Administrator
{
class Program
{
public enum Fruits { OpencvSharp, Machine, Learning, Deep }
static void Main(string[] args)
{
string[] source = { "OpencvSharp", "Machine", "Learning", "Deep" };
List<string> firstGetData = new List<string>();
// typeof로 열거형 타입을 전달
AddData(ref firstGetData, source, typeof(Fruits));
foreach(var item in firstGetData)
{
Console.WriteLine($"Get To EnumData = {item}");
}
firstGetData.Clear();
LinqAddData(ref firstGetData, source, typeof(Fruits));
Console.WriteLine();
foreach (var item in firstGetData)
{
Console.WriteLine($"Get To EnumData = {item}");
}
}
public static void AddData(ref List<string> list, string[] sourceItem, Type type)
{
var enumValue = Enum.GetValues(type);
for (int index = 0; index < sourceItem.Length; index++)
{
foreach (var item in enumValue)
{
if (item.ToString().Contains(sourceItem[index]))
list.Add(item.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)));
}
}
}
[ Result ]
'Language - C# > C#(문법)' 카테고리의 다른 글
C# - 프레임 워크 및 버전 기본값 / 메모 (0) | 2022.01.04 |
---|---|
C# - Dubug Logging (0) | 2021.12.01 |
Python & C# 이용한 Socket 통신 (0) | 2021.11.10 |
C# - Visual Studio Python 연동 - 2 (0) | 2021.11.10 |
C# - Visual Studio Python 연동 - 1 (0) | 2021.11.10 |