C#从类数组中删除项目

时间:2011-09-22 15:35:18

标签: c# arrays

  

可能重复:
  Remove element of a regular array

我有一个定义的方法返回类数组。 例如:Sampleclass [] Sampleclass具有Name,Address,City,Zip属性。在客户端,我想循环遍历数组并删除不需要的项目。我能够循环,但不知道如何删除该项目。

for (int i = 0; i < Sampleclass.Length; i++)
{
if (Sampleclass[i].Address.Contains(""))
{ 
**// How to remove ??**
}
}

2 个答案:

答案 0 :(得分:4)

数组是固定大小的,不允许您在分配后删除项目 - 为此,您可以使用List<T>代替。或者,您可以使用Linq过滤并投影到新数组:

var filteredSampleArray = Sampleclass.Where( x => !x.Address.Contains(someString))
                                     .ToArray();

答案 1 :(得分:0)

无法以这种方式从阵列中删除。数组是静态分配的集合,其大小不会更改。您需要使用类似List<T>的集合。使用List<T>,您可以执行以下操作

var i = 0;
while (i < Sampleclass.Count) {
  if (Sampleclass[i].Address.Contains("")) {
    Sampleclass.RemoveAt(i);
  } else {
    i++;
  }
}