字符串包含时的子串,Linq语法

时间:2013-10-01 05:01:04

标签: c# linq html-agility-pack

在Linq,我有类似

的东西
nodes.Select(td => td.InnerText.
                Replace("&", "&").
                Substring(0, td.InnerText.IndexOf("+"))).
                ToArray();

有时td.InnerText包含一个+符号,有时它不会,如果没有,我会得到空引用异常。

如果td.InnerText包含“+”,我该如何申请Substring(0, td.InnerText.IndexOf("+")))

2 个答案:

答案 0 :(得分:2)

你可以这样做

td.InnerText.Replace("&", "&").Substring(0, td.InnerText.IndexOf("+") > -1 ? td.InnerText.IndexOf("+") : 0);

答案 1 :(得分:1)

尝试使用三元运算符。这可能无法正常工作,但会给你一个提示。

nodes.Select(td => td.InnerText.Replace("&", "&").Substring(0, 
    (td.InnerText.Contains("+")==true? td.InnerText.IndexOf("+"):string.Empty))).
                    ToArray();