我要檢查刪除重複的由;
分割字符串,但我不知道該怎麼做下一
我這樣的代碼:如何使用LINQ比較和在一個列表替換字符串重複
string str = "PORTION G ON GROUND FLOOR;/n/nPORTION G ON GROUND FLOOR;/n/nabcdef1234;/n/nabcdef1234";
List<string> unitList = new List<string>();
foreach (string s in str.Replace("/n","").Split(';'))
{
unitList.Add(s);
}
if ((unitList.Distinct()).Count() == 1)
Label1.Text=unitList.FirstOrDefault();
else
{
//return more than 1 ,remove duplicate
//replace duplicate by "-" or ""
}
我的輸出是:"PORTION G ON GROUND FLOOR;/n/n-;/n/nabcdef1234;/n/n-"
。
我發現如果我使用string []數組而不是List,返回(unitList.Distinct()).Count()
是2而不是1,我想知道是否有錯誤。
這裏是我的代碼:
string str = "PORTION G ON GROUND FLOOR;/n/nPORTION G ON GROUND FLOOR;/n/nPORTION G ON GROUND FLOOR";
string[] unitList = new string[10];
int i=0;
foreach (string s in str.Replace("/n","").Split(';'))
{
unitList[i]=s;
i++;
}
我很高興,並感謝任何人都可以幫我解決這個問題!
由於其同樣的事情,它的工作原理。但你可以解釋下部分爲什麼使用字符串數組將返回2而不是1 – bbqwings 2014-12-19 06:17:34
我測試過,我的預期結果應該被刪除'.aggregate()' – bbqwings 2014-12-19 06:36:02
問題是你正在創建一個長度爲10的數組,你只使用4個元素。 Distinct方法也將空值視爲一個元素,這就是說您是一個額外的元素(具有空值)。爲了避免這種情況,你可以這樣做:string [] unitList = str.Replace(「/ n」,「」).Split(';') – octavioccl 2014-12-19 15:11:10