2013-10-20 116 views
0

從文本框裏面的winform我以用戶輸入爲csv,我將它們放入字符串數組,我重複低谷陣列創建具有名字和姓氏的一些對象中刪除空白。從字符串

if(txtAuthors.Text != string.Empty) 
{ 
    if(txtAuthors.Text.Contains(",")) 
    { 
     if (authorsInput.Count() > 0) 
     { 
     foreach (string name in authorsInput) 
     { 
      name.TrimStart(); 
      string[] firstAndLastName = name.Split(' '); 
      string fname = firstAndLastName[0]; 
      string lname = firstAndLastName[1]; 
     } 
     }  
    } 
} 

問題是,第一個逗號之前僅第一作者加入,因爲它應該(FNAME和L-NAME)和其他唯一名字。所以,我已經試過,你可以看到修剪的名字從數組成員,但問題刪除空格還是一樣。

我在做什麼錯在這裏?

更新:這個現在工作

string[] firstAndLastName = name.TrimStart().Split(' '); 

,但我仍然不知道爲什麼這不工作

name.TrimStart(); 
string[] firstAndLastName = name.Split(' '); 
+2

後樣品輸入這是必需的。 –

回答

2

調用name.TrimStart()不會導致變量name沒有初始空白,因爲strings are immutable objects
您不能修改到位的字符串。您始終需要將操作的結果分配給新字符串。

你的第二個選項的作用,因爲它是這樣的:

string newname = name.TrimStart(); 
string[] firstAndLastName = newname.Split(' '); 

另外,我用一個新的變量爲TrimStart的結果通知。如果你這樣做foreach循環中,因爲它是不允許更改foreach iteration variable

2

您可以使用TRIM()之前和
後削減所有空格'fname = fname.Trim();'