保持string的前8个字符的错误
我对C#Winform编程非常陌生。 我想从Excel文件中读取一列string。 我定义了一个名为cusip的string,一些cusip是空的,一些是纯数字,一些是数字和字母的混合。 读完每个string后,如果长度超过8个字符,我只想保留8个字符,如果string是空的,我想命名为“000000cm”。 最后一步是将每个string添加到列表中,然后执行其他操作。
在这行代码中,我总是收到错误信息:“Object reference not set to a instance of a object”
cusip.Substring(0,7).ToString();
这里是代码快照:
string cusip; cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2); if (cusip != "") { cusip.Substring(0,7).ToString(); } else cusip = "000000cm"; cusipList.Add(cusip);
行cusip.Substring(0,7).ToString();
不改变cusip
和空的检查也可能会导致问题。
将代码更改为:
string cusip; cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2); if (!string.IsNullOrEmpty(cusip)) { cusip = (cusip.Length > 7) ? cusip.Substring(0,8) : cusip; } else { cusip = "000000cm"; } cusipList.Add(cusip);
尝试这个:
string cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2); if (!string.IsNullOrEmpty(cusip)) { if (cusip.Length > 8) { cusip = cusip.Substring(0,8); } } else { cusip = "000000cm"; } cusipList.Add(cusip);
尝试
string cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2)??""; if (!string.IsNullOrEmpty(cusip)) { cusip = cusip.Substring(0,8); } else { cusip = "000000cm"; } cusipList.Add(cusip);