【发布时间】:2015-04-28 04:47:30
【问题描述】:
这是一个字符串数组和字符串操作的简单程序。
我有一个名为 list 的字符串数组,其中的字符串代表我之前读取的文件的单行(每行包含 DNA 化学序列,如 AGCTTTTCATTCT)。
这个getStrands() 方法应该取出每一行(这是list 中的一个元素),其中包含一个名为sequence 的所需子字符串(如“CATCCT”),并将所有这些行与序列到另一个名为result 的字符串数组中并返回它。
public static string[] getStrands(string[] list, string sequence)
{
List<string> temp = new List<string>();
for (int i = 0; i < list.Length; i++)
{
string x = list[i];
if (x.IndexOf(sequence) != -1)
temp.Add(x);
}
//converts temp List into a string[] to return
string[] result = new string[temp.Count];
for (int i = 0; i < temp.Count; i++)
result[i] = temp.ElementAt(i);
return result;
}
错误: System.NullReferenceException 未处理 H结果=-2147467261 Message=对象引用未设置为对象的实例。
错误出现在这一行:if (x.IndexOf(sequence) != -1)
我检查了x 或sequence 是否为null,但它们不是。为什么当我尝试查看 x 是否包含 sequence 时,它给了我这个错误(我也尝试了 Contains() 方法,它给了我同样的错误)?
【问题讨论】:
-
请调试,你一定会自己发现问题的。
标签: c# string contains indexof