Tango
  • Introduction
  • Getting Started
    • Summary
    • From me, the Developer
    • What is Tango?
    • Where to start?
  • Installation
    • Based on NuGet
    • Manually
  • Fundamentals
    • Introduction
    • Using Pattern Matching
    • Option values
    • Either values
    • From void to Unit
    • Func and Action
    • Chainable operations in a Continuation flow
    • Currying and Partial Application
  • Functional
    • Introduction
    • Currying
    • Partial Application
    • Functional Extensions
    • QuickCast to Delegates
  • Operations
    • Introduction
    • Operations with Booleans
    • Operations with Integers
    • Operations with Decimals
    • Operations with Doubles
    • Operations with Strings
  • Types
    • Introduction
    • Unit
    • Option<T>
    • Either<TLeft, TRight>
    • Continuation<TFail, TSuccess>
  • Modules
    • Introduction
    • Option
      • Apply
      • AsEnumerable
      • Bind
      • Count
      • Exists
      • Filter
      • Fold
      • FoldBack
      • Iterate
      • Map
      • OfNullable
      • ToArray
      • ToList
      • ToNullable
    • Either
      • Exists
      • Iterate
      • Fold
      • FoldBack
      • Map
      • Swap
      • ToTuple
    • Continuation
      • AsContinuation
      • Resolve
      • Reject
      • All
    • Collection
      • Append
      • Choose
      • ChunkBySize
      • Collect
      • CompareWith
      • CountBy
      • Concat
      • Distinct
      • Empty
      • Exists
      • Exists2
      • Filter
      • FindIndex
      • Fold
      • Fold2
      • FoldBack
      • FoldBack2
      • ForAll
      • ForAll2
      • ForAll3
      • Head
      • HeadAndTailEnd
      • Range
      • Generate
      • Initialize
      • Iterate
      • Iterate2
      • IterateIndexed
      • IterateIndexed2
      • Map
      • Map2
      • Map3
      • MapIndexed
      • MapIndexed2
      • MapIndexed3
      • Partition
      • Permute
      • Pick
      • Reduce
      • ReduceBack
      • Replicate
      • Scan
      • Scan2
      • ScanBack
      • ScanBack2
      • Tail
      • TryFind
      • TryPick
      • Unzip
      • Unzip3
      • Zip
      • Zip3
  • Extensions
    • Introduction
    • Enum Extensions
    • EqualityComparer Builder
    • Modules as Extensions
Powered by GitBook
On this page

Was this helpful?

  1. Modules
  2. Option

Filter

Returns the option if it IsSome and the predicate function returns true when applied it. Otherwise, returns an Option<T>.None().

Parameter

Returns

Func<T, bool> predicate

Option<T> option

Option<T>

Usage

When the option value IsNone or when the option value IsSome and the predicate function returns true, this function will returns the option parameter as a result.

Otherwise, returns an Option<T>.None().

When the option value IsSome and predicate returns true

Option<int> optionValue = 4;
Option<int> result = optionValue.Filter(value => value % 2 == 0);

//result.IsSome = true
//result.Some = 4

When the option value IsSome and predicate returns false

Option<int> optionValue = 3;
Option<int> result = optionValue.Filter(value => value % 2 == 0);

//result.IsSome = false
//result.IsNone = true

When the option value IsNone

Option<int> optionValue = Option<int>.None();
Option<int> result = optionValue.Filter(value => value % 2 == 0);

//result.IsSome = false
//result.IsNone = true
PreviousExistsNextFold

Last updated 5 years ago

Was this helpful?