Any, All ,Exist 결과값은 bool (참, 거짓)의 값이다.
Any
- Any는 조건에 해당하는 값이 1개라도 존재한다면,
'맞다'
라는 결과를 도출
Any 활용
public void Run()
{
var arrSource = new string[] { "춘남", "추남", "공목다방" };
var arrTarget = new string[] { "양뱅", "태발", "공목다방" };
//Any 단일 비교
string name = "춘남";
// => arrSource에 값 중에 Name에 해당하는 값이 1개라도 있는가?
bool result = arrSource.Any(f => f == name);
Console.WriteLine($"1개라도 조건에 해당되는가 ? { (result ? "포함" : "미포함") }");
//Any 다중 값 비교
// => arrSouce에서 arrTarget에 값 중에 일치하는 값이 한개라도 있는가?
result = arrSource.Any(f => arrTarget.Contains(f));
Console.WriteLine($"1개라도 조건에 해당되는가 ? { (result ? "포함" : "미포함") }");
}
결과
1개라도 조건에 해당되는가 ? 포함
1개라도 조건에 해당되는가 ? 포함
All
- All은 조건에 모든 값들이 만족하는가? 만족한다면
'맞다'
라는 결과를 도출
All활용
public void Run()
{
var tmp = new (string name, int age)[] { (name: "춘남", age: 33), (name: "추남", age: 33) };
//ALL비교
string name = "춘남";
// => tmp의 값중에서 이름이 모두 춘남 인가?
bool result = tmp.All(f => f.name == name);
Console.WriteLine($"이름이 모두 춘남 인가 ? { (result ? "맞다" : "틀리다") }");
// => tmp의 값 중에서 나이가 모두 30살 이상인가?
result = tmp.All(f => f.age > 30);
Console.WriteLine($"나이가 모두 30살 이상인가? { (result ? "맞다" : "틀리다") }");
}
결과
이름이 모두 춘남 인가 ? 틀리다
나이가 모두 30살 이상인가? 맞다
Exist
- Exist은 조건에 해당하는 값이 존재한다면
'맞다'
라는 결과를 도출
- Exist는 List에서만 사용이 가능합니다.
Exist활용
public void Run()
{
var tmp = new (string name, int age)[] { (name: "춘남", age: 33), (name: null, age: 20) };
//Exist 값이 존재하는가?
// => tmp의 값 중에서 이름이 존재하는가?
bool result = tmp.ToList().Exists(f => string.IsNullOrWhiteSpace(f.name));
Console.WriteLine($"이름이 없는 값이 존재 하는가? { (result ? "맞다" : "틀리다") }");
//=> tmp의 age가 30 이하인 값이 있는가?
result = tmp.ToList().Exists(f => f.age < 30);
Console.WriteLine($"나이가 30 이하인 값이 있는가? { (result ? "맞다" : "틀리다") }");
}
결과
이름이 없는 값이 존재 하는가? 맞다
나이가 30 이하인 값이 있는가? 맞다