小编Chr*_*sto的帖子

如何在没有第二个LINQ查询的情况下获得排除的集合?

我有一个LINQ查询,如下所示:

 var p = option.GetType().GetProperties().Where(t => t.PropertyType == typeof(bool));
Run Code Online (Sandbox Code Playgroud)

获取未包含在此查询中的项目的最有效方法是什么,而不对列表执行第二次迭代.

我可以通过for循环轻松完成此操作,但我想知道是否有LINQ的简写.

c#

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

参数类型X不能分配给泛型类型T,其中X被指定为where子句

我有以下课程

public class CalculatorManipulator<TCalculator>
        where TCalculator : CachableCalculator
Run Code Online (Sandbox Code Playgroud)

它包含一个字典:

   protected Dictionary<string, TCalculator> Calculators { get; set; }
Run Code Online (Sandbox Code Playgroud)

假设我尝试添加这样的项目

Calculators.Add(calc.CustomCaption, new CachableCalculator(calc, fg, cache));
Run Code Online (Sandbox Code Playgroud)

为什么会产生这个编译时错误:

Argument type CachableCalculator is not assignable to parameter type TCalculator.
Run Code Online (Sandbox Code Playgroud)

编译器知道那TCalculatorCachableCalculator.

我想知道为什么我必须在它自动执行时进行投射.

这可以通过将其转换为TCalculator来实现

     Calculators.Add(calc.CustomCaption, (TCalculator)new CachableCalculator(calc, fg, cache));
Run Code Online (Sandbox Code Playgroud)

.net c#

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

在Angular2中将类导出为接口

有没有办法将类导出为接口,然后在Angular 2中的另一个模块中导入该接口?我需要能够在一些组件的构造函数中注入类,例如应该注册为提供者.

typescript angular2-services angular

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

单生产者多个消费者实施

考虑以下情况

 private BlockingCollection<Consumer> consumers { get; set; }


 ThreadPool.QueueUserWorkItem((x) => {

                while (consumers.Count == 0)
                    Thread.Sleep(20);

                Consumer consumer;
                if (consumers.TryTake(out consumer)) {
                    var result = consumer.Read(data);
                    //do stuff with result
                    if (consumers.TryAdd(consumer)) {
                        //ok
                    }
                }
            });
Run Code Online (Sandbox Code Playgroud)

当没有可用于处理请求的消费者时,有没有办法避免此超时?

c# multithreading

-2
推荐指数
1
解决办法
1535
查看次数