मैं किसी सरणी की पहली पंक्ति (आइटम आईडी) को हटाने के लिए थोड़ा संघर्ष कर रहा हूं।पावरशेल एक सरणी से आइटम [0] हटाएं
$test.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
सभी विकल्पों को मैं ,$test | gm
की कोशिश की सूचीबद्ध करने के लिए और यह स्पष्ट रूप से कहा गया है:
Remove Method void IList.Remove(System.Object value)
RemoveAt Method void IList.RemoveAt(int index)
तो जब मैं $test.RemoveAt(0)
कोशिश मैं त्रुटि मिलती है:
Exception calling "RemoveAt" with "1" argument(s): "Collection was of a fixed size."At line:1 char:1
+ $test.RemoveAt(1)
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : NotSupportedException
तो मैं अंत में पाया गया कि here$test.RemoveAt(0)
का उपयोग करने में सक्षम होने के लिए मेरी सरणी को System.Object
प्रकार की आवश्यकता है। क्या लिपि की शुरुआत में सभी सरणी को सूची के रूप में घोषित करना सबसे अच्छा अभ्यास है? या क्या इस कार्यक्षमता की आवश्यकता होने पर बाद में सूची में $collection = ({$test}.Invoke())
के साथ सरणी को परिवर्तित करना बेहतर है?
दोनों प्रकार के समर्थक और विपक्ष क्या हैं? आपके सहयोग के लिए धन्यवाद।
उपरोक्त, यह मेरे लिए चाल है। और यह अच्छा और संक्षिप्त है। – Spikee
यदि सरणी में डुप्लिकेट मान हैं तो यह गलत तरीके से व्यवहार कर सकता है। –
@RonMacNeil, अच्छा बिंदु। मैंने अपना जवाब अपडेट कर लिया है। –