2009-05-08 17 views
0

Ich habe ein Array ParameterInfo. Ich muss bestimmte Werte aus dem Array entfernen. Wie kann ich das machen.?Entfernen von Element aus ParameterInfo-Array in C#

Betrachten i havae, Parameterinfo [] die Werte pi enthält,

{Int32 param1} 
{System.String param2} 
{System.Collections.Hashtable param3} 

I der 2. Werte aus dem Array entfernen müssen, d.h {System.String param2}. Wie kann ich das machen.?

Antwort

3

Sie können keine Objekte aus einem Array entfernen. Sie können jedoch ein neues Array ohne das Element erstellen. Wahrscheinlich ist die bequemste (aber nicht notwendigerweise effizient) Art und Weise über eine Liste wäre:

List<ParameterInfo> list = new List<ParameterInfo>(args); 
list.RemoveAt(1); 
args = list.ToArray(); 
2

Sie können nicht wirklich entfernen ein Element aus einem Array, weil Arrays eine feste Größe sind. Sie können jedoch ein neues Array erstellen, das das alte Element auslässt:

public static T[] RemoveElement<T>(T[] original, int elementToRemove) 
{ 
    T[] ret = new T[original.Length-1]; 
    Array.Copy(original, 0, ret, 0, elementToRemove); 
    Array.Copy(original, elementToRemove+1, ret, elementToRemove, 
       ret.Length - elementToRemove); 
    return ret; 
} 
Verwandte Themen