2009-05-08 2 views
0

У меня есть массив ParameterInfo. Мне нужно удалить определенные значения из массива. Как я могу это сделать.?Удаление элемента из массива ParameterInfo в C#

Рассмотрит я havae, ParameterInfo [] пи, содержащее значение,

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

мне нужно удалить 2-го значения из массива, т.е. {System.String param2}. Как я могу это сделать.?

ответ

3

Вы не можете удалить элементы из массива. Однако вы можете создать новый массив без элемента. Вероятно, наиболее удобно (но не обязательно эффективный) способ будет через список:

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

Вы не можете на самом деле удалить элемент из массива, так как массивы имеют фиксированный размер. Тем не менее, вы можете создать новый массив, который опускает старый элемент:

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; 
} 
Смежные вопросы