2017-08-02 50 views
-2

以下代碼行爲我提供了包含所有時區的列表。僅選擇Linq至XML的元素的前n個字符

List<string> _timeZones = xdoc.Descendants("TimeZone").Select(x => x.Value).ToList(); 

但是,在這個特定的列表中,我寧願只有前11個字符。

有人知道如何在上面的Linq聲明中包含這個嗎?

非常感謝您的幫助,

喬伊

+3

只需添加'子串(0,11)'到價值的終結? – maccettura

+0

@maccettura List _hours = xdoc.Descendants(「Hour」)。Select(x => x.Value.Substring(0,11))。ToList();這給了我一個ArgumentOutOfRangeException。 –

+0

聽起來像你有一些小於11個字符的值...所以先嚐試填充? 'PadRight(11).SubString(0,11)' – maccettura

回答

0

您可以添加Substring但它限制長度:

List<string> _timeZones = xdoc.Descendants("TimeZone").Select(x => x.Value.Substring(0, Math.Min(11, x.Value.Length))).ToList(); 
+0

需要在select語句中添加額外的右括號,然後它像魅力一樣工作。非常感謝你!! –

+0

抱歉,錯字 - 我顯然確實無法將代碼輸入SO框。 – NetMage