从C#中的ParameterInfo数组中删除元素

时间:2009-05-08 09:54:54

标签: c#

我有一个ParameterInfo数组。我需要从数组中删除某些值。我怎么能这样做??

考虑一下我的意见, ParameterInfo [] pi包含值

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

我需要从数组中删除第二个值,即{System.String param2}。我怎么能这样做??

2 个答案:

答案 0 :(得分:3)

您无法从阵列中删除项目。但是,您可以在没有项目的情况下创建新阵列。可能最方便(但不一定有效)的方式是通过列表:

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

答案 1 :(得分: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;
}