사용자 지정 계산 공식 언어는 VB를 기반으로 하며 LINQ로 확장할 수 있습니다. 미리 정의된 CC 함수로 사용자의 계산을 수행하기에 충분하지 않을 경우 LINQ를 사용합니다.
자세한 내용은 Microsoft Visual Basic LINQ 설명서를 참조하십시오.
필터의 원리는 술어에 따라 주어진 항목 목록을 필터링하는 것입니다. 필터를 적용하려면 다음이 필요합니다.
필터링할 목록
술어(목록 항목을 받아 부울을 반환하는 함수)
결과는 입력 목록의 일부 항목이 포함된 새 목록입니다.
참고
새 목록의 항목 수는 입력 목록보다 작습니다.
구문:
InputList.Where(Function(x) predicate)
위치: 필터 호출
함수: 술어 작성
예제:
CurrentSignal.AllPeaks.Where(Function(p) p.Peak_Area>1.2 and p.Peak_Height<1000)은(는) 면적이 1.2보다 크고 높이가 1000보다 낮은 피크의 목록을 반환합니다.
이 목록을 수식에 사용하여 목록에 있는 모든 피크의 면적을 합산할 수 있습니다:
Sum("Peak_Area", CurrentSignal.AllPeaks.Where(Function(p) p.Peak_Area>1.2 And p.Peak_Height<1000))
투영의 원리는 주어진 항목 목록에서 모든 항목을 변환하여 목록을 만드는 것입니다. 투영을 적용하려면 다음이 필요합니다:
변환할 목록
투영 함수(목록 항목을 가져와 새 항목을 반환하는 함수)
참고
결과는 입력 목록과 같은 길이의 새 목록입니다. 항목 유형은 다를 수 있습니다!
구문:
InputList.Select(Function(x) projection)
선택: 변환 호출
함수: 투영 함수 작성
예제:
CurrentSignal.AllPeaks.Select(Function(p) p.Peak_Area)은(는) 피크 목록에서 Peak_Area 값 목록을 반환합니다.
그런 다음 합계를 계산할 수 있습니다(CurrentSignal.AllPeaks.Select(Function(p) p.Peak_Area).Sum()).
이는 미리 정의된 사용자 지정 계산 함수 Sum(“Peak_Area”, CurrentSignal.AllPeaks)와(과) 동일하다는 점에 유의하세요.
집계는 목록에서 단일 값을 계산하는 것을 원칙으로 합니다. 집계를 적용하려면 다음이 필요합니다:
InputList.Select(Function(x) projection)
집계할 목록
누적 함수(집계와 현재 항목을 취하는 함수)
집계를 위한 초기 값
참고
결과는 고유한 집계 값입니다. 집계된 값의 유형은 항목 유형과 다를 수 있습니다.
구문:
InputList.Aggregate(initial value,Function(acc,x) accumulation)
집계: 집계를 호출합니다.
함수: 누적 함수를 작성합니다.
예제:
(CurrentSignal.AllPeaks.Select(Function(p) p.Peak_Area)).Aggregate("", Function(acc,x) acc+" ; "&x)은(는) " ; "으로 구분된 모든 피크 면적 목록을 반환합니다.
이는 다음 VB 함수와 동일합니다. string.join(" ; " ,CurrentSignal.AllPeaks.Select(Function(p) p.Peak_Area)).
(CurrentSignal.AllPeaks.Select(Function(p) p.Peak_Area)).Aggregate(0.0, Function(acc,x) acc+x)은(는) 피크 면적 합계를 반환합니다.
이 함수는 미리 정의된 사용자 지정 계산 함수 Sum("Peak_Area", CurrentSignal.AllPeaks)와(과) 동일하다는 점에 유의하세요.
base-id: 9501815947
id: 9007208756556939