List에 저장되어있는 값과 구하고자 하는 값이 일치하지않아
근사값을 찾아 해당 값의 index를 구해오는 코드가 필요했다.
아래 코드들을 이용하여 구했지만.. 결국 연산 속도때문에 사용하진 않았다..
첫번째로 foreach 문을 사용한 근사값 찾기이다.
List<int> findList = new List<int>() {1,3,5,7,9};
int input = 4;
int closest = myList[0];
int idx = 0;
foreach (int num in myList)
{
if (Math.Abs(input - num) < Math.Abs(input - closest))
{
closest = num;
}
}
idx = findList.IndexOf(closest);
해당 코드는 List안에 있는 값을 반복하며 근사값의 index를 찾는 방법이다.
두번째로 Linq를 이용한 근사값 찾기이다.
List<int> findList = new List<int>() { 1, 3, 5, 7, 9 };
int input = 4;
int idx = 0;
int closest = findList.OrderBy(num => Math.Abs(num - input)).First();
하지만.. 사용해야할 곳이 이중 반복문 내에서 사용하다보니 연산속도때문에 둘다 사용하진 못하였다.
두가지 중 연산속도가 더 빠른건 foreach문이였다. OrderBy의 연산속도보다 그냥 반복하는게 낫다.
'🔥 Programming > C#' 카테고리의 다른 글
[C#] 압축파일 압축 풀지않고 이미지 가져오기 (0) | 2023.03.02 |
---|---|
[C#] 인터페이스 (Interface) (0) | 2022.10.07 |