Skip to content

ironmansoftware/plinqo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

plinqo

LINQ-Style PowerShell Methods

About

This is a very simple library that wraps some LINQ methods for integrating with PowerShell. It exposes a single plinqo class that you can use to query arrays. You can chain together methods just like with LINQ in C#.

$Array = 1..1000000
[plinqo]::new($Array).Where({$args[0] -gt 10000}).Skip(10).Take(100)

Installation

Install-Module plinqo
Import-Module plinqo

Performance

plinqo is pretty fast. It's about as fast as the where() method in PowerShell and much faster than Where-Object.

$Array = 1..1000000
Measure-Command {
    [plinqo]::new($Array).Where({$args[0] -gt 10000})
}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 766
Ticks             : 17665031
TotalDays         : 2.04456377314815E-05
TotalHours        : 0.000490695305555556
TotalMinutes      : 0.0294417183333333
TotalSeconds      : 1.7665031
TotalMilliseconds : 1766.5031


Measure-Command {
    $Array.Where({$_ -gt 10000})
}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 632
Ticks             : 16328007
TotalDays         : 1.889815625E-05
TotalHours        : 0.00045355575
TotalMinutes      : 0.027213345
TotalSeconds      : 1.6328007
TotalMilliseconds : 1632.8007

Measure-Command {
    $Array | Where-Object {$_ -gt 10000}
}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 303
Ticks             : 53037798
TotalDays         : 6.13863402777778E-05
TotalHours        : 0.00147327216666667
TotalMinutes      : 0.08839633
TotalSeconds      : 5.3037798
TotalMilliseconds : 5303.7798

Methods

plinqo provides methods for numerous LINQ extension methods.

  • All
  • Any
  • Average
  • Concat
  • Contains
  • Count
  • Distinct
  • ElementAt
  • Except
  • First
  • FirstOrDefault
  • Last
  • LastOrDefault
  • Select
  • Single
  • SingleOrDefault
  • Skip
  • Sum
  • Take
  • Where

About

LINQ-Style PowerShell Methods

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published