WebListから実際の文字列を削除しない理由はわかりませんが、ProxyListから削除されるので奇妙です。なぜリストから文字列を削除しても何も削除されない
デバッグ時に、webisteList.Remove(Webサイト)を実行した後に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(これが真を返す)'は有効ではないC#。あなたの問題が、 'websiteList'からアイテムを削除しても、あなたが反復処理している一時配列オブジェクトからそのアイテムを削除しない場合は、最初に' ToArray() 'をなぜ呼び出すのかについてもう一度考えてください。つまり、なぜToArray()を呼び出すのかを知っていると仮定します。 –
ループ内のリストを変更することはできません。 – Paparazzi
さらに、両方のifブロックで同じことをやっていることになります( 'this returns true'ビットは単にプロキシコードなど)。この方法でコードを繰り返すのは悪いです。両方のチェックを1つのif文に結合して||両方のチェックを実行します。 – MattD