以下代码行为我提供了包含所有时区的列表。仅选择Linq至XML的元素的前n个字符
List<string> _timeZones = xdoc.Descendants("TimeZone").Select(x => x.Value).ToList();
但是,在这个特定的列表中,我宁愿只有前11个字符。
有人知道如何在上面的Linq声明中包含这个吗?
非常感谢您的帮助,
乔伊
以下代码行为我提供了包含所有时区的列表。仅选择Linq至XML的元素的前n个字符
List<string> _timeZones = xdoc.Descendants("TimeZone").Select(x => x.Value).ToList();
但是,在这个特定的列表中,我宁愿只有前11个字符。
有人知道如何在上面的Linq声明中包含这个吗?
非常感谢您的帮助,
乔伊
您可以添加Substring
但它限制长度:
List<string> _timeZones = xdoc.Descendants("TimeZone").Select(x => x.Value.Substring(0, Math.Min(11, x.Value.Length))).ToList();
需要在select语句中添加额外的右括号,然后它像魅力一样工作。非常感谢你!! –
抱歉,错字 - 我显然确实无法将代码输入SO框。 – NetMage
只需添加'子串(0,11)'到价值的终结? – maccettura
@maccettura List _hours = xdoc.Descendants(“Hour”)。Select(x => x.Value.Substring(0,11))。ToList();这给了我一个ArgumentOutOfRangeException。 –
听起来像你有一些小于11个字符的值...所以先尝试填充? 'PadRight(11).SubString(0,11)' – maccettura