Notice
Recent Posts
Recent Comments
Link
반응형
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 행동트리
- unity korea
- articulation body
- dropdown
- GetComponent
- 드롭다운
- raycast
- Unity
- 너비탐색
- dfs
- C#
- 디지털트윈
- sparkmain(clone)
- 최단거리 알고리즘
- 깊이탐색
- unity sparkmain(clone)
- 유니티 sparkmain(clone)
- sparkmain(clone) 무한생성
- readonly
- 티스토리챌린지
- 오블완
- removeAll
- 트리구조
- navisworks api
- 크루스칼
- Simulation
- 습관형성 #직장인자기계발 #오공완
- 유니티
- 최소신장트리 mst
- list clear
Archives
- Today
- Total
낑깡의 게임 프로그래밍 도전기
C# 링큐(Linq) 본문
반응형
링큐
Where, First
List<int> ints = new List<int>();
ints.Add(1);
ints.Add(2);
ints.Add(3);
ints.Add(4);
ints.Add(5);
ints.Add(6)
ints.Add(7);
ints.Add(8);
ints.Add(9);
ints.Add(10);
이렇게 리스트가 있을때 5이상의 값을 출력하려면
foreach(int i in ints)
{
if(i>=5)
intOver.Add(i);
}
이렇게 쓰겠지만 Where를 써서 줄이면
Func<int, bool> func = (int value) => value >= 5;//람다식
//int.Where(CheckOverValue);
//int.Where((int value) => value >= 5);
//int.Where(value => value >= 5);
int value = ints.Where(v => v >= 20).FirstOrDefault();//FirstOrDefault 하나만 가져오기//그냥 First보다 추천 First는 조건에 맞는 값이 없으면 null 반환. 이것은 초기값 반환
provate static bool CheckOverValue(int value)
{
return value >= 5;
}
이렇게 극적으로 줄일 수 있다.
List와 Array는 IEnumerable를 상속 받고 있어서 Where사용이 가능하다.
IEnumerable<int> enumerable = ints.Where(v => v >= 5);
foreach (int i in enumerable)
{
Console.WriteLine(i);
}
//List<int> lists = ints.Where(v => v >= 5).ToList();
//int[] lists = ints.Where(v => v >= 5).ToArray();
출력 형태
class Info
{
public int Money { get; private set;}
public string MyProperty {get; set;}
puvlic Info(int Money, string name)
{
Money = money;
Name = name;
}
}
static void Main(string[] args)
{
List<info> infos = New List<info>();
infod.Add(new Info(monet: 1, name: "진수"));
infod.Add(new Info(monet: 2, name: "진수"));
infod.Add(new Info(monet: 3, name: "진수"));
infod.Add(new Info(monet: 4, name: "진수"));
infod.Add(new Info(monet: 5, name: "진수"));
infod.Add(new Info(monet: 6, name: "진수"));
infod.Add(new Info(monet: 7, name: "진수"));
infod.Add(new Info(monet: 8, name: "진수"));
infod.Add(new Info(monet: 9, name: "진수"));
infod.Add(new Info(monet: 10, name: "진수"));
IEnumerable<info> enumerable = info.Where((v) => v.Money >= 5);
}
클래스 형태는 이렇게 쓸 수 있다.
OrderBy
IOderedEnumerable<Info> indos1 = infos1 = infos.OrderBy(v => v.Money); //정렬
//Info[] infos1 = infos.OrderBy(v => v.Money).ToArray();
정렬하기
Info[] infos1 = infos.OrderByDescending(v => v.Money).ToArray();
역순 정렬
Max
int v = infos.Max(v => v.Money);
가장 큰 숫자 가져오(Min도 가능)
Select (class, 익명형식으로 받기) 내가 원하는 형식으로 조회를 하겠다.
//IEnumerable<string> enmerable = indos.Select(v => v.name);
List<string> enumerable = infos.select(v => v.Name).ToList();
클래스에서 이름만 가져오는 것
ver enumerable = infos.Select(v => new {N = v.Name, M = v.Money});
여러 정보 가져오기. 익명형식
링큐는 종류가 많아서 익히는데 오래 걸릴 수 있다.
링큐를 굳이 쓰는 이유는 많은 사람들이 사용하기도 하고 코드를 줄이는데 좋고 직관적이다.
반응형
'C#' 카테고리의 다른 글
| C# 비동기(Thread, aysnc await) (1) | 2025.07.28 |
|---|---|
| c# 제네릭(Generic) (2) | 2025.07.27 |
| C# 람다식(Lamba) (0) | 2025.07.25 |
| C# 서브클래스, 인터페이스, 추상클래스 (1) | 2025.07.24 |
| C# static, deepcopy (1) | 2025.07.23 |