当rk为null或“”时,如何使用substr工作来创建此函数

时间:2012-06-07 06:15:43

标签: c#

我在C#中有以下功能:

    public string getRowKey(string topic, string rk)
    {
        return string.Join("", from s in topic.Split('.')
                               select s.PadLeft(2, '0')).PadRight(4, '0') +
                    rk.Substring(4);
    }

我遇到了问题,因为如果rk为null或等于“”,则函数失败。有人可以解释我如何解决这个问题。我收到有关索引值的错误。请注意,如果rk为null或“”,那么我只是不希望添加rk.Substring(4)的最后一部分。

3 个答案:

答案 0 :(得分:3)

简单使用三元运算符?:和函数string.IsNullOrEmpty(string)就足够了

public string getRowKey(string topic, string rk)
{
    return string.Join("", from s in topic.Split('.')
                           select s.PadLeft(2, '0')).PadRight(4, '0') +
    string.IsNullOrEmpty(rk) ? "": rk.Substring(4);
}

答案 1 :(得分:2)

试试这个 -

 public string getRowKey(string topic, string rk)     {
    return string.Join("", from s in topic.Split('.')
        select s.PadLeft(2, '0')).PadRight(4, '0') +                     
   string.IsNullOrEmpty(rk)?"":rk.Substring(4);     
} 

请注意,您还需要检查rk的大小是否大于4。

答案 2 :(得分:1)

public string getRowKey(string topic, string rk)
{
    return string.Join("", from s in topic.Split('.')
                           select s.PadLeft(2, '0')).PadRight(4, '0') +
                (string.IsNullOrEmpty(rk) ? "" : rk.Substring(4));
}