개발/C#
[C#] Array(배열)에 동일한 값 있는지 없는지 알아보자.
한번사는인생.
2020. 2. 27. 16:43
반응형
확실히 C# 에는 많은 기능을 제공해주지만, 모든 기능을 알지 못하기에..
개발을 하면서 구글링을 통해서 많이 배운다.
여담은 그만.
나의 상황은 이렇다.
1개의 페이지에서 특정 index값만 예외처리를 해주고 싶다.
index값은 수시로 변경될 수 있으며, 갯수는 정해지지 않았다.
난감하다. 사실 초보 개발자였다면 if문으로 샤샤샥 하드코딩했을 것이다.
하지만 개발한 시간도 오래됐고 색다르고 성능 좋은 기능을 찾게된다.
Array 클래스에 Exists 메서드가 존재한다.
bool 값을 리턴해주고, 매개변수로는 검색할 Array와 Predicate 대리자를 이용해 람다식을 이용할 수 있다.
말해 뭐하냐. 코드로 설명하자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
var sample = "123456,1234567,1234,12345,12347,123487";
var indexs = sample.Split(",");
/*
indexs[0] = 123456;
indexs[1] = 1234567;
indexs[2] = 1234;
.
.
.
indexs[5] = 123487;
*/
// Array.Exists 사용법
// indexs Array에 1234 문자열이 있는지?
var result = Array.Exists(indexs, i => i.Equals("1234"));
// indexs Array에 12로 시작하는 문자열이 있는가?
var result2 = Array.Exists(indexs, i => i.StartsWith("12"));
|
cs |
코드는 간단하다.
예외 처리하고 싶은 index값들을 , (콤마) 구분자를 통해 나열해준다. 그 값이 sample.
sample을 split 하여 index값들을 배열에 들어가게끔 처리해준다.
Array.Exists를 이용해서 내가 원하는 index값들이 있는지 없는지를 확인할 수 있었다.
문자열에 포함되어 있는지 확인하는 메서드인 indexOf가 있다.
하지만 포함되어 있는 것은 찾을 수 있지만,
정확한 값이 들어 있는지는 알 수 없기에 Array.Exists를 사용하여 정확한 값이 Array에 있는지 확인할 수 있었다.
반응형