我有一个定义的方法返回类数组。 例如:Sampleclass [] Sampleclass具有Name,Address,City,Zip属性。在客户端,我想循环遍历数组并删除不需要的项目。我能够循环,但不知道如何删除该项目。
for (int i = 0; i < Sampleclass.Length; i++)
{
if (Sampleclass[i].Address.Contains(""))
{
**// How to remove ??**
}
}
答案 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++;
}
}