對(duì)于以下代碼...IEnumerable<string> items=searchterms.Trim().Split(Environment.NewLine.ToCharArray());
foreach (var item in items) {我在每個(gè) searchterm 項(xiàng)目之間得到一個(gè)長(zhǎng)度為 0 的項(xiàng)目。我在其他地方使用過(guò)類(lèi)似的代碼并沒(méi)有遇到這個(gè),所以不確定為什么現(xiàn)在會(huì)發(fā)生這種情況。我需要在這里添加什么來(lái)擺脫這些額外的條目?也就是說(shuō),項(xiàng)目的數(shù)量與輸入中的術(shù)語(yǔ)數(shù)量相匹配。我有一個(gè)解決方法(跳過(guò)長(zhǎng)度為 0 的項(xiàng)目),但數(shù)字不匹配很煩人,我想修復(fù)它以顯示進(jìn)度。即 items.count 的第 i+1 項(xiàng)。PS 這是在 UWP 上的 Xamarin Forms 中。謝謝,唐納德。
2 回答
侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
問(wèn)題是您按 char 數(shù)組拆分,{ '\r', '\n' }這意味著任一符號(hào)都被視為分隔符,而不是 的整個(gè)序列"\r\n",即中間有一個(gè)空字符串"\r\n"。
要按整個(gè)序列拆分,僅使用一個(gè)元素的字符串?dāng)?shù)組
IEnumerable<string> items = searchterms.Trim().Split(new string[] { Environment.NewLine, }, StringSplitOptions.None);"\r\n"除非字符串中有連續(xù)的,否則這不會(huì)產(chǎn)生空項(xiàng)。如果您還想在這種情況下刪除空項(xiàng)目,您可以使用RemoveEmptyEntries字符串拆分選項(xiàng)。
IEnumerable<string> items = searchterms.Trim().Split(new string[] { Environment.NewLine, }, StringSplitOptions.RemoveEmptyEntries);
牧羊人nacy
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
由于換行符由 2 個(gè)字符組成(在大多數(shù)系統(tǒng)上都是 \r 和 \n),您可能會(huì)得到一個(gè)額外的空字符串作為這些字符之間的字符串。
試試這個(gè):
IEnumerable<string> items=searchterms.Trim().Split(new string[] {Environment.NewLine}, StringSplitOptions.None);
foreach (var item in items) {- 2 回答
- 0 關(guān)注
- 122 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
