C#/기초

[C#][별*] 람다 Lambda 식

딸기우유중독 2024. 5. 10. 16:05

 

 

 

 

#주의

 

아래는 ServiceItems의 Item을 가져다씀.

            ServiceItems.RemoveAll(x => x.IsConnect == false); 실행 후

Items 는 Null 값이 됨.

그래서             dsmContext.RemoveRange(items); 에러남.

 

 

 

아래는 ToList() 하면 ServiceItems의 Item 을 List로 새로운 객체 인스턴스로 가지고 있음.

ServiceItems.RemoveAll(x => x.IsConnect == false); 실행해도 

Items 는 Null 값 안됨.

 

 

 


 

 


 

OfType<T>() 


 

OfType<T>() 메서드는 List의 모든 요소 중 T 타입의 요소만 추출합니다. 

 

 

 

 

https://nonstop-antoine.tistory.com/111

 

[C#] List<object>를 특정 클래스 타입의 List로 캐스팅하는 방법

오늘은 C#에서 List를 특정 클래스 타입의 List로 캐스팅하는 방법에 대해 알아보겠습니다. 가끔 우리는 List에 특정 클래스 타입의 객체만 포함되어 있다는 것을 알고 있지만, 이를 해당 클래스 타

nonstop-antoine.tistory.com

 


Any() 

 

Items 에 뭐가 하나라도 있어야 ( count >0) 이어야 함.

count == 0 이면 

Any() 는 무조건 False

 

var addPossible = AddedDsmItems.Count() > 0 ? AddedDsmItems.Any(x => x.HttpAddress != addAddressInfo.HttpAddress) : true;

 

 


SelectMany()


y는 l.yeares

 

 


 

https://jettstream.tistory.com/121

 

C# Select vs SelectMany

Select() 메서드 객체에 담긴 여러 데이터 중에서 원하는 부분만 손쉽게 추출하여 새로운 형태의 컬렉션으로 생성한다. public class Program { public class Winner { public string name; public int[] years; } public static

jettstream.tistory.com

 

 


 

ALL<>()

 

 

predicate 

조건 함수를 넘겨서

조건에 맞으면 return true;

아니면 return false;

 

 

 

EX)

 

Themes 의 모든 요소(element)의 ShowInThemeSelector 프로퍼티가 true 이면 

isShow is True

아니면 

isShow is False

 

 




ForEach

managerClient.ServiceItems.ForEach(service => { if (!service.IsConnect) managerClient.HealthCheckAsync(service.HttpAddress); });

async 람다

 

managerClient.ServiceItems.ForEach(async service => { if (!service.IsConnect) await managerClient.HealthCheckAsync(service.HttpAddress); });

 


 

728x90