C#从类数组中删除项目
问题描述:
我有限定的方法,它返回类阵列。 ex:Sampleclass [] Sampleclass具有属性Name,Address,City,Zip。在客户端,我想循环访问数组并删除不需要的项目。我能够循环,但不知道如何删除该项目。
for (int i = 0; i < Sampleclass.Length; i++)
{
if (Sampleclass[i].Address.Contains(""))
{
**// How to remove ??**
}
}
答
数组大小固定的,不允许你删除一次分配的项目 - 这你可以用List<T>
代替。或者,您可以使用Linq过滤并投影到一个新阵列:
var filteredSampleArray = Sampleclass.Where(x => !x.Address.Contains(someString))
.ToArray();
答
不可能以这种方式从阵列中删除。数组是静态分配的大小不变的集合。您需要使用类似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
+0
我没有看到'RemoveAt'选项。不知道为什么! – CoolArchTek
已经在这里问:http://stackoverflow.com/questions/496896/how-to-delete-an-element-from-an-array-in-c – LaGrandMere
你可能想要删除所有其地址*'.Contains(“”)'语句在那里的所有内容 – Carsten