2013-06-01 102 views

回答

10

當然,LINQ可以讓你做到這一點很容易:

string[] names = things.Select(x => x.Name).ToArray(); 

當然,如果你只是要遍歷它,你不需要ToArray部分:

IEnumerable<string> names = things.Select(x => x.Name); 

或者你可以創建一個List<string>ToList

List<string> names = things.Select(x => x.Name).ToList(); 

在所有在這些情況下,您可以使用var而不是顯式聲明變量類型 - 爲了清晰起見,我只包含了類型。

ToList使用可以比使用ToArray非常輕微更有效的,如在ToArray最後一步從可能-超大緩衝至合適大小的陣列包括複製。

編輯:現在我們知道你真的需要一個數組,這將是更有效使用手動循環來自己做,你也知道的大小提前。我肯定會使用第一種形式,直到我知道它是一個問題,雖然:)

+0

謝謝 - 我想要一個字符串數組的原因是爲我的'RoleProvider'實現方法'GetRolesForUser' ...我是不預期任何大陣列被返回 –

+0

@tacos_tacos_tacos:對 - 如果你肯定需要一個字符串數組,那麼第一個就是你要的。 –