В настоящее время я реализовал его, как показано ниже, но я не люблю его из-за дублирования кода в GetEnumerator, как я могу устранить дублирование ...правильный способ реализации IEnumerable <t> без дублирования кода
public class EodSettlementRequestStubData : IEnumerable<SettlementRequest>
{
public SettlementRequest UnapprovedFlows;
public SettlementRequest UnapprovedRecovery;
public SettlementRequest UnverifiedFlows;
public SettlementRequest UnverifiedRecovery;
IEnumerator<SettlementRequest> IEnumerable<SettlementRequest>.GetEnumerator()
{
yield return UnapprovedFlows;
yield return UnapprovedRecovery;
yield return UnverifiedFlows;
yield return UnverifiedRecovery;
}
public IEnumerator GetEnumerator()
{
yield return UnapprovedFlows;
yield return UnapprovedRecovery;
yield return UnverifiedFlows;
yield return UnverifiedRecovery;
}
}
Я хочу иметь возможность доступа к нему как по отдельности, так и IEnumerable, чтобы сделать некоторые вещи linq ...
Я могу создать список, чтобы избежать дублирования кода, но я считаю, что должен быть лучший способ справиться с этим. ..
ReSharper по умолчанию создала необщие один, как общественность. и это действительно вызвало проблему .. спасибо за ответ – harishr
@entre Нет, на самом деле это не так. – Aron
@entre Я также могу подтвердить, что нет. Я использую Resharper, и он всегда делает общее представление. Единственный способ, которым это может произойти, - это реализовать его в IEnumerable, а затем вы сказали, что он реализует 'IEnumerable' –