无法将IEnumerable类型转换为IEnumerable

时间:2015-04-16 18:46:23

标签: c#

我不明白为什么我无法将IEnumerable<Person>方法返回的值分配给同一类型。我收到的消息是:

  

无法将源类型IEnumerable<Person>转换为目标类型IEnumerable<Person>

任何人都可以建议这段代码有什么问题:

public IEnumerable<Person> GetPeople(IEnumerable<int> Ids)
{
    return FindAll(m => Ids.Contains(m.Id)).ToList();
}

调用此方法后尝试分配相同类型的值:

IEnumerable<Person> people = _myRepository.GetPeople(listOfIds);

我可以分配给var,但是我想在类范围内声明这个变量,所以我被卡住了。

1 个答案:

答案 0 :(得分:2)

在这种情况下,您必须使用Person with namespace:

public IEnumerable<[Namespace]> GetPeople(IEnumerable<int> Ids)
{
    return FindAll(m => Ids.Contains(m.Id)).ToList();
}

IEnumerable<[Namespace].Person> people = _myRepository.GetPeople(listOfIds);

[Namespace] - 存储Person类型的命名空间