gpt4 book ai didi

c# - 如何 TypeCast SelectMany 结果

转载 作者:行者123 更新时间:2023-11-30 19:59:47 27 4
gpt4 key购买 nike

我正在尝试展平列表列表,同时确保最终对象列表的类型正确。这是一个(抽象的)示例:

class Space
{
public List<Space> ContainedSpaces
{
get;
set;
}
}

class Library : Space
{
public void AddRoom(Room room)
{
ContainedSpaces.Add(room);
}
}

class Room : Space
{
}

class Test
{
public List<Room> ListOfRooms(List<Library> libraries)
{
return libraries.SelectMany(lib => lib.ContainedSpaces).ToList();
}
}

在这个例子中,我在 ListOfRooms 中的错误是:

Cannot implicitly convert type 'System.Collections.Generic.List<SoftTech.Integration.Space>' to 'System.Collections.Generic.List<SoftTech.Integration.Room>'

在不讨论类设计(这是一个抽象示例)的情况下,我如何让 SelectMany 将最终列表中的每个项目强制转换为 Room 对象?

最佳答案

return libraries.SelectMany(lib => lib.ContainedSpaces).OfType<Room>().ToList();

关于c# - 如何 TypeCast SelectMany 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22965224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com