小编Col*_*nic的帖子

四舍五入到下一个2的幂

我想写一个函数,返回最近的2个数的下一个幂.例如,如果我的输入是789,输出应该是1024.有没有任何方法可以实现这一点而不使用任何循环但只使用一些按位运算符?

c optimization bit-manipulation

170
推荐指数
14
解决办法
16万
查看次数

不能在lambda表达式中使用ref或out参数

为什么不能在lambda表达式中使用ref或out参数?

我今天遇到了错误并找到了解决方法,但我仍然很好奇为什么这是编译时错误.

CS1628:不能在匿名方法,lambda表达式或查询表达式中的ref或out参数'parameter'中使用

这是一个简单的例子:

private void Foo()
{
    int value;
    Bar(out value);
}

private void Bar(out int value)
{
    value = 3;
    int[] array = { 1, 2, 3, 4, 5 };
    int newValue = array.Where(a => a == value).First();
}
Run Code Online (Sandbox Code Playgroud)

c# lambda

161
推荐指数
4
解决办法
8万
查看次数

把猫扔出窗外

想象一下,你在一座有猫的高楼里.这只猫可以在低矮的故事窗口中摔下来,但如果从高楼层抛出,它就会死亡.你怎么能用最少的尝试数来计算猫可以存活的最长时间?

显然,如果你只有一只猫,那么你只能线性搜索.先从一楼扔猫.如果它存活下来,从第二个扔掉它.最终,从地板f抛出后,猫会死.然后你知道楼层f-1是最大的安全楼层.

但是,如果你有一只以上的猫怎么办?您现在可以尝试某种对数搜索.让我们说这个版本有100层,你有两个相同的猫.如果你将第一只猫从50楼扔出去并且死亡,那么你只需要线性搜索50个楼层.如果您为第一次尝试选择较低楼层,则可以做得更好.假设您选择一次解决20个楼层的问题,并且第一个致命楼层是#50.在这种情况下,你的第一只猫将在从60楼死亡之前从20楼和40楼的飞行中幸存下来.你只需要分别检查楼层41到49.这总共有12次尝试,这比你试图使用二进制消除所需的50次要好得多.

一般来说,对于有2只猫的n层建筑来说,最好的策略和最坏情况的复杂性是什么?n楼和m猫怎么样?

假设所有猫都是等同的:它们都将从给定窗口的摔倒中幸存或死亡.此外,每一次尝试都是独立的:如果一只猫在跌倒时幸存下来,它就完全没有受到伤害.

这不是家庭作业,虽然我可能已经解决了一次学校作业.这只是一个异想天开的问题,今天突然出现在我脑海中,我不记得解决方案了.如果有人知道此问题的名称或解决方案算法的加分点.

language-agnostic algorithm dynamic-programming asymptotic-complexity

150
推荐指数
4
解决办法
1万
查看次数

C#交互式窗口可以与我的代码交互吗?

我安装了Roslyn.现在,如果我知道在Visual Studio中查看的位置,我可以打开"C#交互式窗口",然后运行代码:

> 5 + 3
8
Run Code Online (Sandbox Code Playgroud)

那很可爱.现在我该如何与我的代码进行交互-my类?假设我打开了一个项目.

> new Cog()
(1,5): error CS0246: The type or namespace name 'Cog' could not be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

.net c# visual-studio roslyn

147
推荐指数
5
解决办法
4万
查看次数

如何在没有nuget.exe或Visual Studio扩展的情况下下载Nuget包?

我如何下载NuGet包?我没有NuGet Visual Studio扩展或命令行程序nuget.exe.如何从网上下载.nupack文件?据我所知,我将能够从中提取.dll文件(使用7-zip)以正常使用.

我碰巧感兴趣的包是http://nuget.org/packages/Microsoft.Bcl.Async,但我想知道如何做到这一点一般.

在Ruby世界中,这很容易 - RubyGems网站上的每个包页都有一个.gem文件的下载链接,例如:https://rubygems.org/gems/pony


关于NuGet明显命运的论点属于其他地方.这个问题无关紧要,为什么我避开它.我不是唯一一个.

.net c# visual-studio nuget

139
推荐指数
6
解决办法
10万
查看次数

C#6中的长字符串插补行

我发现虽然字符串插值在应用于我现有的代码库的字符串格式调用时非常好,但考虑到通常首选的列限制,字符串对于单行很快就会变得太长.特别是当插值的表达式很复杂时.使用格式字符串,您可以将变量列表拆分为多行.

var str = string.Format("some text {0} more text {1}",
    obj1.property,
    obj2.property);
Run Code Online (Sandbox Code Playgroud)

有没有人有任何打破这些线路的首选方法?

我想你可以这样做:

var str = $"some text { obj1.property }" +
  " more text { obj2.property };
Run Code Online (Sandbox Code Playgroud)

c# c#-6.0

122
推荐指数
4
解决办法
3万
查看次数

120
推荐指数
5
解决办法
4万
查看次数

PowerShell中的布尔文字

PowerShell中的布尔文字是什么?

powershell

119
推荐指数
3
解决办法
6万
查看次数

如何在几毫秒内在Python中创建日期时间?

我可以通过java.util.Date(毫秒)在Java 创建一个类似的Date对象.如何在Python中创建可比较的?

分配Date对象并将其初始化以表示自标准基准时间(称为"epoch")以来的指定毫秒数,即1970年1月1日00:00:00 GMT.

python datetime

112
推荐指数
5
解决办法
9万
查看次数

我应该使用调试信息编译发布版本为"full"还是"pdb-only"?

在Visual Studio 2010 for C#项目中,如果转到项目属性>构建>高级>调试信息,则有三个选项:none,full或pdb-only.根据这个问题的答案,我相信我理解full和pdb之间的一些区别.但是,哪个更适合发布版本?如果我使用"完整"会有性能影响吗?如果我使用"pdb-only",那么调试生产问题会更难吗?

"full"和"pdbonly"有什么区别?https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/debug-compiler-option

c# debugging build debug-symbols visual-studio

110
推荐指数
4
解决办法
4万
查看次数