0

私は次のラムダを持っています

var entities = JTransformer.Queryer.GetList()
  .Where(x => { var y = JStubs.GetType(x.Name); 
    return (y.Impliments(baseType) && y.IsGenericType); });

作成した JStub.GetType 関数にブレークポイントを設定しましたが、ステートメントを実行しようとするたびにヒットしません。

JTransformer.Queryer.GetList()Enumerable を返しています。値があることを確認しました

-       Results View    Expanding the Results View will enumerate the IEnumerable   
+       [0] {JsonMap.Default.Types.JEntity} JsonMap.Interfaces.IEntity {JsonMap.Default.Types.JEntity}
+       [1] {JsonMap.Default.Types.JEntity} JsonMap.Interfaces.IEntity {JsonMap.Default.Types.JEntity}
+       [2] {JsonMap.Default.Types.JEntity} JsonMap.Interfaces.IEntity {JsonMap.Default.Types.JEntity}
+       [3] {JsonMap.Default.Types.JEntity} JsonMap.Interfaces.IEntity {JsonMap.Default.Types.JEntity}
+       [4] {JsonMap.Default.Types.JEntity} JsonMap.Interfaces.IEntity {JsonMap.Default.Types.JEntity}
+       [5] {JsonMap.Default.Types.JEntity} JsonMap.Interfaces.IEntity {JsonMap.Default.Types.JEntity}
+       [6] {JsonMap.Default.Types.JEntity} JsonMap.Interfaces.IEntity {JsonMap.Default.Types.JEntity}
+       [7] {JsonMap.Default.Types.JEntity} JsonMap.Interfaces.IEntity {JsonMap.Default.Types.JEntity}

では、なぜ私のラムダが実行されないのでしょうか?

編集:

明確にする必要があります。私は後でfor-eachエンティティを実行していますが、反復するものは何もありませんでした。

foreach (var entity in entities)
{
    (some code never get's hit)
}

しかし、私が次のことをすると

var entities = JTransformer.Queryer.GetList().ToList()
    .Where(x => { var y = JStubs.GetType(x.Name); 
        return (y.Impliments(baseType) && y.IsGenericType); });

突然、すべてのエンティティに値が含まれ、for-eachget のヒットのコードが

4

2 に答える 2

0

列挙の「実際の」実行を引き起こす内で.ToList()orまたはを使用する必要があります。それ自体では、参照を作成する以外は何もしません。.ToArray()for-eachFunc

于 2013-05-22T19:29:45.670 に答える