그래서 WebsiteList에서 실제 문자열을 삭제하지 않는 이유는 모르겠지만 ProxyList에서 삭제하기 때문에 이상합니다.목록에서 문자열을 지우지 않는 이유는 무엇입니까?
디버깅 할 때 webisteList.Remove (웹 사이트)를 실행 한 후 websiteList.Count가 더 낮아지기 때문에 무언가가 삭제된다는 메시지가 표시됩니다. 하지만 문자열을 지우지 않아도 같은 문자열을 반복합니다. 당신은 반복적으로 같은 proxyList
에서 삭제하는
foreach (var website in websiteList.ToArray())
{
var webSplit = website.Split(')');
foreach (var proxy in proxyList.ToArray())
{
if (proxyList.Count > 0)
{
if(websiteList.Count > 0)
{
var proxySplit = proxy.Split(':');
int Port;
bool convert = Int32.TryParse(proxySplit[1], out Port);
if (this returns true)
{
Console.WriteLine("Removing proxy");
proxyList.Remove(proxy);
websiteList.Remove(website);
}
if (this returns true)
{
Console.WriteLine("Removing proxy");
proxyList.Remove(proxy);
websiteList.Remove(website);
}
}
}
else
break;
}
}
실제 코드를 게시하십시오. 'if (this returns this) '가 유효하지 않습니다. C#. 'websiteList'에서 항목을 삭제해도 임시 배열 객체에서 삭제되지 않는다면, 처음으로 ToArray()를 호출하는 이유에 대해 다시 생각해보십시오. . 즉, ToArray()를 호출하는 이유를 알고 있다고 가정합니다. –
루프에서 목록을 수정할 수 없습니다. – Paparazzi
또한 if 블록 모두에서 똑같은 작업을 수행합니다 ('this returns true'가 프록시 코드 일 뿐이라는 가정하에). 이런 방식으로 코드를 반복하는 것은 좋지 않습니다. 두 검사를 하나의 if 문으로 결합하여 || 두 검사를 모두 실행합니다. – MattD