LoginSignup
0
0

【PowerShell】和集合、積集合、差集合を求める

Posted at

はじめに

以前に「【C#】和集合、積集合、差集合、対象差を求める」という記事を書きましたが、この記事が思ったよりも高評価(※2024/06/07時点で34いいね)でした。
そこで勉強がてら、同様の処理をPowerShellで実装してみた結果を記事としてまとめてみました。

テストコード

  • 単にPowerShellで書くのではなく、ワンライナーでLINQのような形にしてみました。
  • 和集合(Union)では、-Uniqueを使って重複を削除しています。
  • 積集合や差集合はどのように実装すべきか悩みましたが、Where-Objectを使って「条件にマッチする要素のみ抽出する」ことができたため、どうにか課題をクリアできました。
test.ps1
$list1 = @("Tokyo", "Osaka", "Yokohama", "Nagoya", "Kobe")
$list2 = @("Tokyo", "Yokohama", "Sapporo", "Fukuoka")

Write-Host ("和集合(Union):" + (($list1 + $list2) | Select-Object -Unique))
Write-Host ("和集合(Concat):" + ($list1 + $list2))
Write-Host ("積集合(Intersect):" + ($list1 | Where-Object { $list2 -contains $_ } ))
Write-Host ("差集合(Except)[list1-list2]:" + ($list1 | Where-Object { $list2 -notcontains $_ } ))
Write-Host ("差集合(Except)[list2-list1]:" + ($list2 | Where-Object { $list1 -notcontains $_ } ))
実行結果
和集合(Union):Tokyo Osaka Yokohama Nagoya Kobe Sapporo Fukuoka
和集合(Concat):Tokyo Osaka Yokohama Nagoya Kobe Tokyo Yokohama Sapporo Fukuoka
積集合(Intersect):Tokyo Yokohama
差集合(Except)[list1-list2]:Osaka Nagoya Kobe
差集合(Except)[list2-list1]:Sapporo Fukuoka

参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0