2010-07-29 61 views
2

刪除的項目我有一個數據的數據庫領域,如這樣的:從字符串數組

76,60,12 

如果我想刪除,例如,60,請問我有什麼關係?

要刪除的號碼可以是任何地方。如果需要,我還需要刪除逗號。

我正在使用.NET 2.0。

+0

這些值是否在字符串中?即:'「76,60,12」'作爲數據庫列值? – 2010-07-29 12:19:39

回答

8

我會用逗號分隔字符串,刪除元素然後再次加入字符串。希望這一切都可以在.NET 2.0中使用:

string s = "76,60,12"; 
List<string> numbers = new List<string>(s.Split(',')); 
numbers.Remove("60"); 
s = string.Join(",", numbers.ToArray()); 
+0

它的工作原理,謝謝! – netNewbi3 2010-07-29 12:58:57

-1

使用正則表達式並使逗號(甚至前導空格)可選。你的正則表達式字符串會像「[,]?[\ s]?」 +「60」

作爲一個例子,它看起來像這樣(與你想要的地方替換)(我只需鍵入這,不知道這是否編譯,但應該顯示的邏輯)

dbFieldValue = Regex.Replace(dbFieldValue, @"(?(^)\b60\b[,\s]*|[,\s]*\b60\b)", ""); 

---編輯---- 上面的正則表達式被編輯,所以它現在指定邊界,並且如果文本作爲第一個元素出現,也會提供。

+1

這看起來像是一個危險的正則表達式運行......如果你在字符串「600,160,60,6060」上運行它,你會得到什麼。我不認爲你會得到你想要的東西...... – Chris 2010-07-29 12:24:24

+0

感謝評論。完全匆忙地想念那個。向它添加邊界將很好地修復它。 dbFieldValue = Regex.Replace(dbFieldValue,「[,]?[\ s]?」+「\ b60 \ b」,「」); – 2010-07-29 12:38:55

+0

您可能需要更多一點...如果它的第一個值與任何地方的值不匹配,但您可能仍希望在刪除第一個值後刪除當前位於列表中的逗號。不要忘記,你可以編輯你的答案,使它更加正確,希望減號隊員(我不是其中的一員)會撤銷他們的阻力(他們不能等到答案被編輯後,我相信)。 – Chris 2010-07-29 12:51:08

0

如果您使用Visual Studio 2008或2010,您可以使用LINQ Bridge到LINQ添加到對象的功能,.NET 2.0和執行以下操作:

string csv = String.Join(",", 
    "76,60,12".Split(',').Where(s => s != "60").ToArray()); 
-1

正則表達式給了我和想法,加上「 ,「雙方取代」,60,「。 最有可能比其他版本更快,並假定沒有空格

Dim values = "76,60,12" 
Dim valueToReplace = "60" 
values = ("," & values & ",").Replace("," & valueToReplace & ",", ",").Trim(",")