2011-09-22 160 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