【发布时间】:2014-02-05 10:00:23
【问题描述】:
所以我环顾四周寻找我的问题的答案,我想添加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<Account>。 -
我已经有了。我在第一段中说过,解释了我的问题。 :(
-
用日常术语来表达蒂姆的评论,
_accountReader是一个帐户阅读器。Where对 collection 项进行操作,因此您在那里写的内容毫无意义。
标签: c# linq ienumerable