问题列表 - 第45862页

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

C#(.NET 4.0)中的快速字符串后缀检查?

在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结合使用似乎是最好的选择.

c# string

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

确定服务器上正在使用哪个wcf端点

我有一个wcf服务,它使用两个端点公开服务.一个端点用于Web服务调用,而另一个端点用于休息.

有没有办法确定从哪个端点调用服务器功能?

.net wcf wcf-endpoint

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

像IDictionary <TKey,TValue>之类的东西,但仅限于.NET中的键(不需要值)?

.Net中是否存在允许存储/检索/包含没有值的键的东西?
我可以使用Dictionary<string, string>并始终存储String.Empty为值,但也许有更好的解决方案?

.net collections

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

如何使用Paramiko制作sudo命令

我使用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

python ssh sudo paramiko

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

只有一个按钮提交表单?

我继承了一个项目,有一个带有 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 个按钮实际上将表单提交到另一个页面进行处理?

javascript forms submit

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

如何将bug修复分支合并到trunk和release分支

考虑以下情况:

  • 开发主要在干线进行.
  • 在修复复杂错误或开发新的(最初不稳定)功能时使用分支.
    通常,一旦开发完成,这些分支就会合并到主干中.
  • 1个分支用作当前发布分支(例如当前"R-1.0").
  • 标签用于发布(将是"R-1.0.0").

现在必须修复主干以及当前版本1.0.0中的复杂错误:

  1. 将创建来自主干的分支"BG-1".
  2. 该错误将在此分支中修复.
    同时发展将继续在后备箱.

你现在如何继续将分支重新整合到主干和"R-1.0"中?

  • 将主干合并到"BG1",然后将"BG1"重新集成到主干中,然后重新集成到"R-1.0"中.
    =>这不是解决方案,因为这种方式"R-1.0"会收到自1.0版以来在主干中开发的所有东西,这不是目标.
  • 尝试将"BG1"重新集成到主干中,然后重新集成到"R-1.0"而不合并主干.
    =>这也无法工作,因为其他不属于1.0版的更改已经是"BG1"分支的一部分.

有没有解决这个问题的方法?
我看到的唯一解决方案是首先从"R-1.0"开始"BG1"而不是主干.如果是这样,这是否意味着对于每个错误修复分支,开发人员必须找到包含此发布分支中的错误和分支的最早的受支持版本?

更新:
在主干中进行所有开发的做法源自"Jim T"的答案,这是我非常喜欢的概念.

svn tortoisesvn merge branch

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

ASP.NET MVC - 强制Razor(cshtml)文件的自定义基类

我目前正在使用此语法来指定自定义Razor页面基类和模型类型:

@inherits MyWebViewPage<MyModel>
Run Code Online (Sandbox Code Playgroud)

较新的Razor版本支持新的指令来简化此代码:

@model MyModel
Run Code Online (Sandbox Code Playgroud)

我想使用它,但我找不到一种方法使它适用于我的自定义基类.有没有办法在我的网站的全局级别指定这个?

.net asp.net-mvc razor

8
推荐指数
2
解决办法
3309
查看次数

JavaScript keyCode - 使用外部键盘布局单击了哪个键

无法找到解决我认为是一个简单问题的方法.

var a = evt.keyCode;用来确定点击了哪个键.

问题是我得到的值是被点击的键的ASCII码而不是被点击的真实字符.

例如,如果用户正在使用法语键盘,则单击该7é,因此不是获取ASCII代码é,而是获得55,这是ASCII代码7.

javascript javascript-events

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

C#奇怪的lambda行为

有人可以指出为什么会发生这种情况:

我正在使用它NHibernateLinq它的提供者.

此处列出了失败的代码:

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,它将每个实体存储在一个简单的列表中,那么这个 …

c# linq nhibernate lambda iqueryable

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