我正在创建一个快速项目,它从用户那里获取.txt,将每一行保存到一个数组,然后请求每个ID,具体取决于响应是否包含“无法找到配置文件”,或者有效的个人资料,据此行事。
这是我的代码;
static void Main(string[] args)
{
string[] lines = System.IO.File.ReadAllLines(@"C:\\users\\louis\\Desktop\\d.txt");
string[] avaliableIds = { };
string errorMessage = "The specified profile could not be found.</h3><br><br>";
foreach (string c in lines)
{
WebRequest req = WebRequest.Create("http://steamcommunity.com/id/" + c);
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string returne = sr.ReadToEnd();
System.Threading.Thread.Sleep(100);
if (returne.Contains(errorMessage))
{
int avaliableArrayLength = avaliableIds.Length;
int shouldGo = avaliableArrayLength + 1;
avaliableIds[shouldGo] = c;
} // Here is where I'm getting the error
}
for(int i = 0; i == avaliableIds.Length; i++)
{
Console.WriteLine(avaliableIds[i]);
}
}
根据我的理解,'shouldGo'的值高于'avaliableIds',所以我的声明有问题,它应该是一个可以保持任何数量的高或低的数组。
请帮助,谢谢。
答案 0 :(得分:1)
在C#中,数组具有固定大小。您将availableIds
声明为空(零长度)数组,因此您无法在其中存储任何数据。
Use a List<string>
instead,这是一个可变大小的数据结构。
答案 1 :(得分:0)
i == avaliableIds.Length
应该是
i < avaliableIds.Length