2011-09-22 137 views
1

可能重复:
Remove element of a regular arrayC#从类数组中删除项目

我有限定的方法,它返回类阵列。 ex:Sampleclass [] Sampleclass具有属性Name,Address,City,Zip。在客户端,我想循环访问数组并删除不需要的项目。我能够循环,但不知道如何删除该项目。

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

已经在这里问:http://stackoverflow.com/questions/496896/how-to-delete-an-element-from-an-array-in-c – LaGrandMere

+1

你可能想要删除所有其地址*'.Contains(“”)'语句在那里的所有内容 – Carsten

回答

4

数组大小固定的,不允许你删除一次分配的项目 - 这你可以用List<T>代替。或者,您可以使用Linq过滤并投影到一个新阵列:

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

不可能以这种方式从阵列中删除。数组是静态分配的大小不变的集合。您需要使用类似List<T>的集合。随着List<T>你可以做以下

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

@StriplingWarrior更新为反映OP应该使用'List '与数组 – JaredPar

+0

我没有看到'RemoveAt'选项。不知道为什么! – CoolArchTek