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