LINQ 연습하기
- Exists
- ForEach
- Where
- Select
using System;
using System.Collections.Generic;
using System.Linq;
namespace Sample_TEST
{
class SampleProgram
{
public static void Main(string[] args)
{
// list 선언 및 초기화
var nums = new List<int> { 12, 87, 94, 14, 53, 20, 40, 35, 76, 91, 31, 17, 48 };
//Q1. LINQ의 Exists 메서드 사용하여, 8, 9로 나누어 떨어지는지 확인
if (nums.Exists(x => x % 8 == 0 || x % 9 == 0))
Console.WriteLine($"8 or 9 로 나누어 떨어지는 수가 있다.");
else
Console.WriteLine($"8 or 9 로 나누어 떨어지는 수가 없다.");
//Q2. LINQ의 ForEach 메서드 사용하여, 2.0으로 나눈 값을 콘솔에 출력
nums.ForEach(x => Console.WriteLine($"{x / 2.0}"));
//Q3. LINQ의 Where 메서드 사용하여, 50 이상인 요소를 열거
nums.Where(x => x > 50).ToList().ForEach(x => Console.WriteLine($"{x}")) ;
//Q4. LINQ의 Select 메서드 사용하여, 각 값을 2배로 만들고, 결과를 List<int>에 저장 및 출력
var nums2 = nums.Select(x => x * 2).ToList();
nums2.ForEach(x => Console.WriteLine($"{x}"));
}
}
}
LINQ 연습하기2
- Max
- Take
- ConvertAll
- OrderBy
- Distinct
class Program
{
static void Main(string[] args)
{
var nums = new List<int> { 5, 10, 17, 9, 3, 21, 10, 40, 21, 3, 35 };
// max값 찾기
var max = nums.Max();
// 마지막부터 두개 요소 표시
var two = nums.TakeLast(2).ToList();
// 각각 숫자값을 문자열로 변환
var res = nums.ConvertAll(x => x.ToString());
// 작은순서로 나열, 앞에서 3개 구해서 표시
var last3 = nums.OrderBy(x => x).Take(3).ToList();
// 중복 제거, 10보다 큰 값 Count 표시
var cnt = nums.Distinct().Count(x => x > 10);
Console.Read();
}
}
LINQ 연습하기3
- Where
- Select
- First
- Max
- OrderByDescending
- Contains
- Average
- Count
Book.cs
class Book
{
public string Title { get; set; }
public int Price { get; set; }
public int Pages { get; set; }
}
main.cs
class Program
{
static void Main(string[] args)
{
var books = new List<Book>
{
new Book{Title = "태평천하", Price = 400, Pages = 378},
new Book{Title = "운수 좋은날", Price = 281, Pages = 212},
new Book{Title = "만세전", Price = 389, Pages = 201},
new Book{Title = "삼대", Price = 637, Pages = 464},
new Book{Title = "상록수", Price = 411, Pages = 276},
new Book{Title = "혈의누", Price = 961, Pages = 666},
new Book{Title = "금수회의록", Price = 514, Pages = 268},
};
// 제목이 태평천하인 항목의 price, page 출력
var res1 = books.Where(x => x.Title == "태평천하").ToList();
Console.WriteLine($"{res1.First().Price},{res1.First().Pages}");
// '수'가 포함된 항목의 Count
var count = books.Count(x => x.Title.Contains("수"));
// '수'가 포함된 항목의 pages의 합의 평균
var avg = books.Where(x => x.Title.Contains("수")).Average(n => n.Pages);
// 가격이 400 이상인 항목 중 첫번째 제목 표시
var firstTitle = books.First(x => x.Price >= 400).Title;
// 가격이 400 미만인 항목 중 가장 많은 page를 표시
var maxPage = books.Where(x => x.Price < 400).Max(o => o.Pages);
// 400page 이상이고, 가격이 비싼순으로 제목,가격을 표시
var orderDesc = books.Where(x => x.Pages >= 400).OrderByDescending(o => o.Price).ToList();
// '수'가 포함된 500 page이하인 항목 제목 표시, 여러개인경우 전부 표시
var res2 = books.Where(x => x.Pages <= 500).ToList();
res2.ForEach(x => Console.WriteLine(x.Title));
Console.Read();
}
}
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 지정한 문자로 문자열 분할하기 (0) | 2022.05.07 |
---|---|
[C#] Thread 동기화하기 Lock , Monitor (0) | 2022.04.01 |
[C#] 문자열 거꾸로 변환하기 (0) | 2022.03.27 |
[C#] Thread 2개 사용하여 변수 값 공유 테스트 (0) | 2022.03.22 |
[C#] LINQ 이용하여 리스트 2개 비교 (0) | 2022.03.22 |