在C#中,我有一个我无法修改的A类.从这个类我创建了B类(即继承自A),它增加了一些属性.我还有一个静态函数,<A>在调用GetListOfA()时返回List .
如何将GetListOfA()的返回值转换为List <B>?
例如,将列表<B>bList = foo.GetListOfA()列为List<B>
如果您使用的是C#3.0(Visual Studio 2008),则可以:
using System.Linq;
List<B> bList = foo.GetListOfA().Cast<B>().ToList();
Run Code Online (Sandbox Code Playgroud)
使用System.Linq,你可以说
List<B> bList = foo.GetListOfA().Cast<B>().ToList()
Run Code Online (Sandbox Code Playgroud)
要么
var bs = foo.GetListOfA().Cast<B>()
Run Code Online (Sandbox Code Playgroud)
要么
static class AExts
{
public List<B> AsB( this List<A> list )
{
return list.Cast<B>().ToList();
}
}
List<B> bList = foo.GetListOfA().AsB();
Run Code Online (Sandbox Code Playgroud)
要么
static class FooExts
{
public List<B> AsB( this Foo foo )
{
return list.GetListOfA().AsB();
}
}
List<B> bList = foo.AsB();
Run Code Online (Sandbox Code Playgroud)
或者,如果你没有/不能/不使用Linq,PowerCollections中的算法具有相同的功能
而且我没有看到另一个答案,即使它可能说的相同!
| 归档时间: |
|
| 查看次数: |
2898 次 |
| 最近记录: |