- class RandomListClass{
- static AddListMember([ref]$InputObject){
- if($InputObject.Value -is [System.Collections.iDictionary] -or $InputObject.Value -is [Hashtable]){
- $InputObject.Value|Add-Member -MemberType ScriptProperty -Name RandomKeys -Force -Value {
- $this.Keys|Get-Random -Count $this.Count
- }
- $InputObject.Value|Add-Member -MemberType ScriptProperty -Name RandomValues -Force -Value {
- $this.Values|Get-Random -Count $this.Count
- }
- $InputObject.Value|Add-Member -MemberType ScriptProperty -Name Dequeue -Force -Value {
- if($this.Count){
- $Keys=$this.Keys|Get-Random
- $this.Remove($Keys)|Out-Null
- $Keys
- }
- }
- }
- }
- }
-
- $RandomList=[System.Collections.Generic.Dictionary[string,string]]@{}
- [RandomListClass]::AddListMember($RandomList)
- 1..10|%{
- $RandomList.Add($_,$_)
- }
-
- $RandomList.Dequeue
复制代码 不过不知为什么换List添加不了成员对象,重载不了此类,但是字典和哈希却可以? |