2013-11-04 74 views
0

此代碼的工作:如何輸入數據並同時刪除空白元素?

var Input = File.ReadAllLines(FilePath).Select(line => line.Split(' ')).ToArray(); 

此代碼不起作用:

var Input = File.ReadAllLines(FilePath).Select(line => line.Split(' ', StringSplitOptions.RemoveEmptyEntries)).ToArray(); 

我得到的錯誤:「無法從‘System.StringSplitOptions’到‘炭’轉換 我想。刪除空元素與此除了我如何做到這一點

回答

5

你需要調用它Split喜歡?

line.Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries) 

因爲StringSplitOptins可以傳遞一個字符數組或字符串元素數組。

參見:String.Split Method (Char[], StringSplitOptions)

所以,你的說法應該是:

var Input = File.ReadAllLines(FilePath) 
       .Select(line => line.Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries)) 
       .ToArray(); 
+0

你能幫我明白這一點細微差別?看起來你的代碼中正在創建一個新的數組[],而在我的代碼中沒有創建新的數組[]。 – phan

+1

@phan,接受'StringSplitOptions'的'string.Split'重載需要一個字符或字符串數​​組,因爲你只傳遞一個元素,所以你需要將它傳遞給數組,因此'new []',你可以也可以使用:'line.Split(new char [] {''},StringSplitOptions.RemoveEmptyEntries)',它是一樣的。 – Habib