如何计算一个string列表的好散列码?

背景: 我有一个简短的string列表。 string的数量并不总是相同的,但几乎总是“less数”的顺序, 在我们的数据库中将这些string存储在第二个规范化的表中 这些string写入数据库后永远不会更改。 我们希望能够在查询中快速匹配这些string,而无需进行大量的连接。 所以我正在考虑将所有这些string的哈希码存储在主表中,并将其包含在我们的索引中,因此只有在哈希码匹配时才能通过数据库处理联接。 那么如何获得一个好的散列码呢? 我可以: 将所有string的哈希码加在一起 XOR与每个string后面的结果相乘(用31表示) 把所有的string集合在一起,然后得到哈希码 其他方式 那么人们会怎么想呢? 最后,我只是连接string并计算连接的哈希码,因为它很简单,而且工作得很好。 (如果你在意我们正在使用.NET和SqlServer) Bug!,Bug! Eric Lippert 引用GetHashCode的指导原则和规则 System.String.GetHashCode的文档特别指出,两个相同的string可以在CLR的不同版本中具有不同的哈希代码,实际上它们的确可以。 不要在数据库中存储string散列,并期望它们永远是一样的,因为它们不会。 所以String.GetHashcode()不应该用于这个。

目标框架,“.NET Framework … Client Profile”是什么意思?

在Visual Studio 2008中,项目的目标框架设置是 .NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5 但是,在Visual Studio 2010中它们是 .NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5 .NET Framework 3.5客户端configuration文件 .NET Framework 4 .NET Framework 4客户端configuration文件 客户端configuration文件设置是什么意思? 编辑 多一点实验表明,使用MVC,WebForms和WCF项目,您不会获得“客户端configuration文件”选项。 在创buildWinForms和控制台应用程序时,默认的目标框架是.NET 4 Client Profile。 这是有道理的。

无法获得UIView sizeToFit做任何有意义的事情

当我添加一个子视图到一个UIView ,或者当我调整现有的子视图,我期望[view sizeToFit]和[view sizeThatFits]来反映这种变化。 但是,我的经验是, sizeToFit什么都不做, sizeThatFits在更改前后返回相同的值。 我的testing项目有一个包含一个button的单一视图。 单击该button将向视图添加另一个button,然后在包含的视图上调用sizeToFit 。 在添加子视图之前和之后,视图边界被转储到控制台。 – (void) logSizes { NSLog(@"theView.bounds: %@", NSStringFromCGRect(theView.bounds)); NSLog(@"theView.sizeThatFits: %@", NSStringFromCGSize([theView sizeThatFits:CGSizeZero])); } – (void) buttonTouched { [self logSizes]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn.frame = CGRectMake(10.0f, 100.0f, 400.0f, 600.0f); [theView addSubview:btn]; [theView sizeToFit]; [self performSelector:@selector(logSizes) withObject:nil afterDelay:1.0]; } 输出是: 2010-10-15 15:40:42.359 SizeToFit[14953:207] theView.bounds: {{0, […]

记事本++在文件中查找filterEXCLUDE

我正在寻找一种方法来获取n ++的在文件对话框中查找以排除某些文件… 到目前为止我发现的唯一参考是http://sourceforge.net/project/shownotes.php?release_id=536795&group_id=189927 ,但不幸的是,它不起作用。 我使用* [^ *。dll],我认为,search所有东西,但dll文件。 我该如何解决这个问题? 谢谢

如何在ASP.NET MVC 3中创build自己的脚手架模板?

ASP.NET MVC提供了select新创build视图所基于的“脚手架模板”的能力(添加视图>创build强types视图>脚手架模板)。 是否可以创build自己的脚手架模板? 如果是的话,怎么样?

在哪里放内部课程?

有些人可能会认为,这是所有时代最不重要的问题的候选人。 然而,代码风格对我来说是一个非常重要的话题,我想确保我以可读的方式编写代码 – 对于我和大多数开发人员。 这就是为什么我想知道你们在哪里宣布你的内部类。 我遵循以下方法sortingscheme,因为它是相当普遍的: public void foo() { usedByFoo(); } private void usedByFoo() { } public void bar() { } 我从上到下排列它们,每一种方法都与使用的地方相近。 现在我可以用内部类来做同样的事情,像这样: class Outer { private Inner inner; private class Inner {}; public Outer() { } … } 我认为这是我遵循的最一致的风格,但我也经常看到人们在文件的顶部或底部声明所有的内部类。 鉴于我的订购方法,我应该遵循哪种风格? 什么是最常见的方式来做到这一点?

Javadependency injection:XML或注释

注释变得stream行。 Spring-3支持它们。 CDI很大程度上依赖于他们(我不能使用CDI和注释,对不对?) 我的问题是为什么 ? 我听到几个问题: “它有助于摆脱XML”。 但是,什么是坏的XML? 依赖性本质上是声明性的,而XML对于声明是非常好的(对于命令式编程来说非常糟糕)。 有了好的IDE(比如想法),编辑和validationXML非常容易,不是吗? “在许多情况下,每个接口只有一个实现”。 那不是真的! 几乎我的系统中的所有接口都有模拟testing的实现。 任何其他问题? 而现在我的XML的增加: 你可以在任何地方注入任何东西(不仅是有注释的代码) 我应该怎么做,如果我有一个接口的几个实现? 使用限定符? 但是这迫使我的class级知道需要什么样的注射。 这不利于devise。 基于XML的DI使我的代码变得清晰:每个类都不知道注入,所以我可以对它进行configuration并以任何方式进行unit testing。 你怎么看?

在jQuery-UI中调整图标大小

我发现jQuery UI中的图标对我的应用程序来说有点小。 调整.ui-icon的大小当然没有帮助,因为图像是从一个图像文件加载的,所以它只会显示其他图标的一部分。 有没有办法调整图标大小,而不必调整我想要使用的每个大小的图标图像文件?

无锁algorithm是否真的比locking对象更好?

Raymond Chen 在无 锁 algorithm 方面 做了大量的工作 。 除了InterlockedXxx函数的简单情况之外,似乎所有这些模式都是他们实现自己的锁 。 当然,没有处理器锁,但是为了确保一致性,在每个CPU上循环重复的概念非常像自旋锁。 作为自旋锁,它们将比操作系统附带的通用锁效率低,因为它们在等待其他线程时不会控制其量子块。 因此,当有人来找我说“但是我的algorithm是无锁的”时,我的总体回答是“如此”? 我很好奇 – 是否有基准显示locking自由algorithm有优势locking全面的对手?

为什么空行中的缩进不好?

我所知道的每个自由/开放源码软件项目都有规则来防止代码中的尾随空格。 但是我认为继续当前的缩进是非常自然的: int main() { ….int a = 42; …. ….return a; } 但是git反正会抛出警告。 所以我的问题是:为什么当前缩进内的那些标签不好? 我不是在寻找像“总是这样做”的答案。 让我们假设在整个项目中缩进是一致的。