0

我在 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) 的最后一部分。

4

3 回答 3

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);
}
于 2012-06-07T06:21:26.270 回答
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。

于 2012-06-07T06:22:35.357 回答
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));
}
于 2012-06-07T06:23:14.140 回答