C#可以让我的课看起来像另一个班吗?

Vac*_*ano 1 c# class c#-3.0

我有一个看起来像这样的课程:

public class BasePadWI
{
    public WorkItem WorkItemReference { get; set; }
    .... Other stuff ......
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个字典,定义如下:

public Dictionary<BasePadWI, Canvas> Pad { get; set; }
Run Code Online (Sandbox Code Playgroud)

我想打个电话:

List<WorkItem> workItems = Pad.Keys.ToList();
Run Code Online (Sandbox Code Playgroud)

(注意:WorkItem是一个密封的类,所以我不能继承.)

我是否可以在课堂上做些诡计让它看起来像WorkItem

我在此期间做到了这一点:

List<WorkItem> workItems = Pad.Keys.ToList().ConvertAll(x=>x.WorkItemReference );
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 9

你可以做:

List<WorkItem> workItems = Pad
                             .Keys
                             .Select(basePad => basePad.WorkItemReference)
                             .ToList();
Run Code Online (Sandbox Code Playgroud)

这使用LINQ来动态提取您的成员.