2008-12-17 88 views

回答

2

或者,如果你想使用C#語言擴展:

var words = (from line in new[] { "one two", "three four five" } 
      from word in line.Split(' ', StringSplitOptions.RemoveEmptyEntries) 
      select word).Count(); 
6

你可以做的SelectMany是:

var stringArray = new[] {"one two", "three four five"}; 
var numWords = stringArray.SelectMany(segment => segment.Split(' ')).Count(); 

SelectMany並將結果序列合併爲一個序列,然後將其項目爲字符串數組的每一項空白分裂...

+0

+1,但你也可以省略分裂,因爲它是空白默認參數。 http://msdn.microsoft.com/en-us/library/b873y76a.aspx – 2008-12-17 00:22:52

+0

是的,我只是爲了便於閱讀而添加它:) – CMS 2008-12-17 00:24:30

+0

感謝您對SelectMany的提示!真棒提示! – 2008-12-17 00:26:04

5

我想點心是更具可讀性:

var list = new string[] { "1", "2", "3 4 5" }; 
var count = list.Sum(words => words.Split().Length); 
1

不是問題的答案(即使用LINQ獲取數組中的組合字數),但要添加相關信息,可以使用strings.split和strings.join來執行相同的操作:

C#:

string[] StringArray = { "one two", "three four five" }; 
int NumWords = Strings.Split(Strings.Join(StringArray)).Length; 

Vb.Net:

Dim StringArray() As String = {"one two", "three four five"} 
    Dim NumWords As Integer = Split(Join(StringArray)).Length 
相關問題