相关疑难解决方法(0)

C#:是具有继承的泛型类型的运算符

我有一个运算符比较泛型类型的问题.

 public interface ISomeInterface<T> where T : SomeBaseClass{
 }

 public class SomeClass : SomeBaseClass{
 }
Run Code Online (Sandbox Code Playgroud)

现在我们想用is运算符检查类型.我们有一个实现接口ISomeInterface的类的实例.

不幸的是,我们面临以下问题:

 // someObject is an Instance of a class implementing interface ISomeInterface<SomeClass>
 bool isSomeBaseClass = someObject is ISomeInterface<SomeBaseClass>; // false
 bool isSomeClass = someObject is ISomeInterface<SomeClass>; // true
Run Code Online (Sandbox Code Playgroud)

是否可以检查变量泛型类型?

托比,提前谢谢

c# generics operators

3
推荐指数
2
解决办法
2652
查看次数

试图将foreach转换为linq等价物

可能重复:
是否可以在不使用foreach的情况下重新创建此语句?

我有2个共享基类的类

DealBookmarkWrapper : BookmarkWrapper
StoreBookmarkWrapper : BookmarkWrapper
Run Code Online (Sandbox Code Playgroud)

我还有以下声明:

// 1 - This works
List<BookmarkWrapper> bm = new List<BookmarkWrapper>();
foreach(var d in deals)
{
    bm.Add(new DealBookmarkWrapper(d));
}

// 2 - This does not work
List<BookmarkWrapper> bm2 = deals.Select(d => new DealBookmarkWrapper(d)).ToList();
Run Code Online (Sandbox Code Playgroud)

1)工作,但2需要演员工作.我不确定我是做错了什么,还是在第二种场景中确实需要演员.

有人对它有所了解吗?

c# linq

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

标签 统计

c# ×2

generics ×1

linq ×1

operators ×1