我在linq中有一个从xml加载的字符串,该属性或元素是可选的,但我想修剪字符串,因为xml文件可以像这样手动编写。
<text>Hello World</text>
或者像这样
<text>
hello world
<text>
后者会在之前和之后创建我想修剪的新行字符。
我试着做
QuestionText = (string)query.Element("text").ToString().Trim()
但是当该元素不存在时,该应用程序会崩溃。
答案 0 :(得分:2)
QuestionText = query.Element("text")!=null ? query.Element("text").Value.Trim() : string.Empty;
答案 1 :(得分:1)
WP7中有可能吗?
QuestionText = ((string)query.Element("text") ?? string.Empty).Trim();
干杯
答案 2 :(得分:1)
我可能想要为XElement
制作扩展方法public static class XElementExtensions
{
public static string TrimmedValue(this XElement elem)
{
if(elem == null)
return null; // or, possibly String.Empty depending on your requirement.
if(String.IsNullOrEmpty(elem.Value))
return elem.Value
return elem.Value.Trim();
}
}
用法:
QuestionText = query.Element("text").TrimmedValue()
答案 3 :(得分:1)
如果你可以在null上返回一个空字符串,那该怎么办?
QuestionText =(query.Element(“text”)+“”)。修剪()
[我使用其他地方转换空字符串,但当然因为关于如何处理nulls / empty的问题不明确,这可能与你需要的不同]
答案 4 :(得分:0)
首先,不要将字符串强制转换为字符串。
这个怎么样......
string QuestionText = "";
if(query.Element("text") != null)
QuestionText = query.Element("text").ToString().Trim();
答案 5 :(得分:0)
QuestionText = Convert.ToString(query.Element("text")).Trim();