Итак, я некоторое время искал ответ на вопрос, и я вижу, чтобы добавить заголовочный файл using System.Linq
, за исключением того, что у меня уже есть это, поэтому я не знаю, что мой код не компилирует. В моем контексте кода существует _accountreader
, так почему он говорит, что определение его не существует?Не содержит определения того, где и не используется метод расширения?
Линия return _accountReader.Where(x => x.Age);
где компилятор кричит на меня.
public interface IAccountReader
{
IEnumerable<Account> GetAccountFrom(string file);
}
public class XmlFileAccountReader : IAccountReader
{
public IEnumerable<Account> GetAccountFrom(string file)
{
var accounts = new List<Account>();
//read accounts from XML file
return accounts;
}
}
public class AccountProcessor
{
private readonly IAccountReader _accountReader;
public AccountProcessor(IAccountReader accountReader)
{
_accountReader = accountReader;
}
public IEnumerable<Account> GetAccountFrom(string file)
{
return _accountReader.Where(x => x.Age);
}
}
public class Account
{
public int Age { get; set; }
}
'IAccountReader' не реализует' IEnumerable '. –
У меня уже есть это. Я сказал это в первом абзаце, объясняющем мою проблему. :( –
Чтобы поместить комментарий Тима в повседневные термины, '_accountReader' является * одним читателем учетной записи.' Where' работает с * коллекциями * элементов, поэтому то, что вы там написали, не имеет смысла. – Jon