相关疑难解决方法(0)

从List <X>转换为List <Y>的语法较短?

我知道可以将一个项目列表从一种类型转换为另一种类型(假设您的对象有一个公共静态显式运算符方法来执行转换),一次一个:

List<Y> ListOfY = new List<Y>();

foreach(X x in ListOfX)
    ListOfY.Add((Y)x);
Run Code Online (Sandbox Code Playgroud)

但是不可能一次投出整个列表吗?例如,

ListOfY = (List<Y>)ListOfX;
Run Code Online (Sandbox Code Playgroud)

c# ienumerable casting list

216
推荐指数
5
解决办法
15万
查看次数

C# - List <MyClass>可以无缝地转换为List <Interface>或类似的吗?

我有一个DataSource在我的控制这始终是一个List<T>地方T有继承IEntity.

public class MyClass<T> where T : IEntity
{
    public List<T> DataSource
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,显然你不能去做一个以下List<T>List<IEntity>事情:

List<IEntity> wontWork = (List<IEntity>)this.DataSource;
Run Code Online (Sandbox Code Playgroud)

如何将DataSource作为List的列表IEntity,同时仍然可以添加和删除项目DataSource?即我可以执行以下操作,但从List中删除它不会从DataSource中删除:

public List<TOut> GetDataSourceCopyAsUnderlyingType<TOut>()
{

    if (this.DataSource == null)
    {
        return new List<TOut>();
    }
    else
    {

        // Get the list and the enumerator
        IList list = (IList)this.DataSource;
        IEnumerator enumerator = list.GetEnumerator();

        // Build the target list
        List<TOut> targetList = new List<TOut>();

        int …
Run Code Online (Sandbox Code Playgroud)

c# generics casting list .net-2.0

0
推荐指数
1
解决办法
942
查看次数

标签 统计

c# ×2

casting ×2

list ×2

.net-2.0 ×1

generics ×1

ienumerable ×1