いくつかのコードをトレースしています。リストから特定のアイテムを削除するために、リストが以下に送信されます。
これはgotoを使用する適切な方法ですか?それも必要ですか?2番目のifをelseifに編集し、gotoを必要とせずにリストの処理を続行しませんか?(BASIC以外でgotoを見たのはこれが初めてです。)
public static IList<ClientEntity> FilterNoNeedSendBackToClients(IList<ClientEntity> src)
{
if (src == null)
return null;
checkAB01:
for (int i = 0; i < src.Count; i++)
{
ClientEntity info = src[i];
if (info.ProductNumber != null && info.ProductNumber.ToLower().Trim().Length > 0
&&
info.CancelledByReliantSyncAB01 != null && info.CancelledByReliantSyncAB01.Value == true
)
{
src.Remove(info);
goto checkAB01;
}
if ((info.PartnerContract == null || info.PartnerContract.Trim().Length == 0)
&&
(info.ProductNumber == null || info.ProductNumber.Trim().Length == 0))
{
src.Remove(info);
goto checkAB01;
}
}
return src;
}