728x90
반응형
728x170
■ LINQ 표준 질의 연산자를 사용해 각 그룹에서 첫번째 항목만 출력하는 방법을 보여준다.
▶ Item.cs
namespace TestProject;
/// <summary>
/// 항목
/// </summary>
public class Item
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region ID - ID
/// <summary>
/// ID
/// </summary>
public int ID { get; set; }
#endregion
#region 성명 - Name
/// <summary>
/// 성명
/// </summary>
public string Name { get; set; }
#endregion
#region 연도 - Year
/// <summary>
/// 연도
/// </summary>
public int Year { get; set; }
#endregion
#region 데이터 - Data
/// <summary>
/// 데이터
/// </summary>
public int Data { get; set; }
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 문자열 구하기 - ToString()
/// <summary>
/// 문자열 구하기
/// </summary>
/// <returns>문자열</returns>
public override string ToString()
{
return $"{ID}, {Name}, {Year}, {Data}";
}
#endregion
}
▶ Program.cs
namespace TestProject;
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
List<Item> sourceList = new List<Item>
{
new Item { ID = 1, Name = "Nima", Year = 1990, Data = 10 },
new Item { ID = 2, Name = "Nima", Year = 1990, Data = 11 },
new Item { ID = 3, Name = "Nima", Year = 2000, Data = 12 },
new Item { ID = 4, Name = "John", Year = 2001, Data = 1 },
new Item { ID = 5, Name = "John", Year = 2002, Data = 2 },
new Item { ID = 6, Name = "Sara", Year = 2010, Data = 4 }
};
Console.WriteLine("소스 리스트");
Console.WriteLine("----------------------------------------");
foreach(Item item in sourceList)
{
Console.WriteLine(item);
}
Console.WriteLine("----------------------------------------");
Console.WriteLine();
Console.WriteLine("결과 리스트");
Console.WriteLine("----------------------------------------");
IEnumerable<Item> resultEnumerable = from item in sourceList
group item by item.Name into groups
select groups.OrderBy(p => p.Year).First();
foreach(Item item in resultEnumerable)
{
Console.WriteLine(item);
}
Console.WriteLine("----------------------------------------");
}
#endregion
}
728x90
반응형
그리드형(광고전용)
'C# > Linq' 카테고리의 다른 글
[C#/LINQ/.NET6] Enumerable 클래스 : SequenceEqual 확장 메소드를 사용해 배열 비교하기 (0) | 2022.10.06 |
---|---|
[C#/LINQ/.NET6] Enumerable 클래스 : Empty<T> 정적 메소드 사용하기 (0) | 2022.10.02 |
[C#/LINQ/.NET6] LINQ 확장 메소드를 사용해 각 그룹에서 첫번째 항목만 출력하기 (0) | 2022.10.01 |
[C#/LINQ/.NET6] Enumerable 클래스 : Where/All 확장 메소드를 사용해 상대 리스트에 없는 항목 추출하기 (0) | 2022.09.18 |
[C#/LINQ/.NET6] Enumerable 클래스 : Where/Any 확장 메소드를 사용해 상대 리스트에 없는 항목 추출하기 (0) | 2022.09.18 |
[C#/LINQ/.NET6] Expression<T> 클래스 : 속성명 구하기 (기능 개선) (0) | 2022.09.06 |
[C#/LINQ/.NET6] Expression<T> 클래스 : 속성명 구하기 (0) | 2022.09.06 |
[C#/LINQ] Expression 클래스 : 지정 타입으로 변환하기 (0) | 2022.09.02 |
[C#/LINQ/.NET6] Enumerable 클래스 : Select<TSource, TResult> 확장 메소드를 사용해 정수 문자열 리스트에서 정수 리스트 구하기 (0) | 2022.07.27 |
[C#/LINQ/.NET6] Enumerable 클래스 : Select<TSource, TResult> 확장 메소드를 사용해 정수 문자열 리스트에서 정수 리스트 구하기 (0) | 2022.07.27 |
댓글을 달아 주세요