我有限定的方法,它返回類陣列。 ex:Sampleclass [] Sampleclass具有屬性Name,Address,City,Zip。在客戶端,我想循環訪問數組並刪除不需要的項目。我能夠循環,但不知道如何刪除該項目。
for (int i = 0; i < Sampleclass.Length; i++)
{
if (Sampleclass[i].Address.Contains(""))
{
**// How to remove ??**
}
}
我有限定的方法,它返回類陣列。 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++;
}
}
@StriplingWarrior更新爲反映OP應該使用'List
我沒有看到'RemoveAt'選項。不知道爲什麼! – CoolArchTek
已經在這裏問:http://stackoverflow.com/questions/496896/how-to-delete-an-element-from-an-array-in-c – LaGrandMere
你可能想要刪除所有其地址*'.Contains(「」)'語句在那裏的所有內容 – Carsten