结果怎么样?
intval("19.90"*100)
Run Code Online (Sandbox Code Playgroud)
是
1989
Run Code Online (Sandbox Code Playgroud)
而不是1990人们所期望的(PHP 5.2.14)?
在C#中检查字符串后缀的最快方法是什么?
我需要检查一个特定术语的大型列表中的每个字符串(从5000到100000个项目).保证该术语永远不会嵌入字符串中.换句话说,如果字符串包含该术语,则它将位于字符串的末尾.该字符串也保证长于后缀.文化信息并不重要.
这些是针对100000个字符串执行的不同方法(其中一半具有后缀):
1. Substring Comparison - 13.60ms
2. String.Contains - 22.33ms
3. CompareInfo.IsSuffix - 24.60ms
4. String.EndsWith - 29.08ms
5. String.LastIndexOf - 30.68ms
Run Code Online (Sandbox Code Playgroud)
这些是平均时间.[编辑]忘了提到字符串也被放入单独的列表中,但这并不重要.它确实增加了运行时间.
在我的系统子字符串比较中(使用String.Substring方法提取字符串的结尾并将其与后缀术语进行比较)在针对100000字符串进行测试时始终是最快的.使用子字符串比较的问题是垃圾收集可以大大减慢它(比其他方法更多)因为String.Substring创建新的字符串..NET 4.0中的效果并不像3.5及更低版本那么糟糕,但它仍然很明显.在我的测试中,String.Substring在12000-13000个字符串集上执行得更慢.这在系统和实现之间显然会有所不同.
[编辑]基准代码:http: //pastebin.com/smEtYNYN
[编辑] FlyingStreudel的代码运行速度很快,但Jon Skeet建议将EndsWith与StringComparison.Ordinal结合使用似乎是最好的选择.
我有一个wcf服务,它使用两个端点公开服务.一个端点用于Web服务调用,而另一个端点用于休息.
有没有办法确定从哪个端点调用服务器功能?
.Net中是否存在允许存储/检索/包含没有值的键的东西?
我可以使用Dictionary<string, string>并始终存储String.Empty为值,但也许有更好的解决方案?
我使用paramiko
f.ex sudo apt-get update的sudo 命令遇到了一些问题
这是我的代码:
try:
import paramiko
except:
try:
import paramiko
except:
print "There was an error with the paramiko module"
cmd = "sudo apt-get update"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect("ip",username="lexel",password="password")
print "succesfully conected"
except:
print "There was an Error conecting"
stdin, stdout, stderr = ssh.exec_command(cmd)
stdin.write('password\n')
stdin.flush()
print stderr.readlines()
print stdout.readlines()
Run Code Online (Sandbox Code Playgroud)
这是一个快速代码.我知道我需要添加sys.exit(1)以及所有这些,但这仅仅是为了演示
我用这个作为参考: Jessenoller.com
我继承了一个项目,有一个带有 3 个按钮的表单:
<input type="submit" id="ctl00_contentPlaceHolder_back" value="Make Changes" name="ctl00$contentPlaceHolder$back" onClick="history.back();">
<input type="submit" id="ctl00_contentPlaceHolder_preview" value="View Outside" name="ctl00$contentPlaceHolder$preview">
<input type="submit" id="ctl00_contentPlaceHolder_submit" value="Send Card" name="ctl00$contentPlaceHolder$submit">
Run Code Online (Sandbox Code Playgroud)
我如何做到这一点,只有 1 个按钮实际上将表单提交到另一个页面进行处理?
考虑以下情况:
现在必须修复主干以及当前版本1.0.0中的复杂错误:
你现在如何继续将分支重新整合到主干和"R-1.0"中?
有没有解决这个问题的方法?
我看到的唯一解决方案是首先从"R-1.0"开始"BG1"而不是主干.如果是这样,这是否意味着对于每个错误修复分支,开发人员必须找到包含此发布分支中的错误和分支的最早的受支持版本?
更新:
在主干中进行所有开发的做法源自"Jim T"的答案,这是我非常喜欢的概念.
我目前正在使用此语法来指定自定义Razor页面基类和模型类型:
@inherits MyWebViewPage<MyModel>
Run Code Online (Sandbox Code Playgroud)
较新的Razor版本支持新的指令来简化此代码:
@model MyModel
Run Code Online (Sandbox Code Playgroud)
我想使用它,但我找不到一种方法使它适用于我的自定义基类.有没有办法在我的网站的全局级别指定这个?
无法找到解决我认为是一个简单问题的方法.
我var a = evt.keyCode;用来确定点击了哪个键.
问题是我得到的值是被点击的键的ASCII码而不是被点击的真实字符.
例如,如果用户正在使用法语键盘,则单击该7键é,因此不是获取ASCII代码é,而是获得55,这是ASCII代码7.
有人可以指出为什么会发生这种情况:
我正在使用它NHibernate和Linq它的提供者.
此处列出了失败的代码:
var sequence = session.Query<T>();
var wtfSequence = sequence.Where(x => true);
var okaySequence = sequence.Where(x => x.Id > 0);
Run Code Online (Sandbox Code Playgroud)
调试显示sequence(IQueryable<T>之后)包含2个元素,这些元素已添加到数据库中.
我希望第一个Where语句产生该序列中的所有元素,但不幸的是它留下了0个元素.
Where相反,第二个陈述实际上产生了2个元素,因为它应该起作用.
以下是NHibernate -> Sqlite第一个和第二个Where语句的查询.
NHibernate: select cast(count(*) as INTEGER) as col_0_0_ from "BinaryUnitProxy_IndicatorUnitDescriptor" binaryunit0_ where @p0='true';@p0 = 'True' [Type: String (0)]
NHibernate: select cast(count(*) as INTEGER) as col_0_0_ from "BinaryUnitProxy_IndicatorUnitDescriptor" binaryunit0_ where binaryunit0_.Id>@p0;@p0 = 0 [Type: Int32 (0)]
Run Code Online (Sandbox Code Playgroud)
现在,如果我用my测试相同的代码InMemoryRepository,它将每个实体存储在一个简单的列表中,那么这个 …
.net ×3
c# ×2
javascript ×2
asp.net-mvc ×1
branch ×1
collections ×1
forms ×1
iqueryable ×1
lambda ×1
linq ×1
merge ×1
nhibernate ×1
paramiko ×1
php ×1
python ×1
razor ×1
ssh ×1
string ×1
submit ×1
sudo ×1
svn ×1
tortoisesvn ×1
wcf ×1
wcf-endpoint ×1