我最近在几次关于Hashtables的访谈中进行了深入研究,并且何时需要覆盖GetHashCode().讨论一直在深入和深入,直到我全身心投入.
我现在正在做一些研究,以涵盖下一次准备好的一切.
我找到了这篇我想分享的优秀文章:http: //msdn.microsoft.com/en-us/library/ms379571(VS80).aspx #datastructures20_2_topic5
1)我感觉不太舒服的事实是字典是基于哈希的,但列表显然不是.这只是意味着在List <>和Array []中搜索是线性的,而在字典或散列表中搜索是不变的,因此更快?这都是它的全部吗?
2)如果我使用类作为字典中的键,我需要根据任何必需的标识字段覆盖该类的GetHashcode()以使实例唯一.但是,仍然可能发生两个ID字段相等并且将生成相同的哈希码?如果这是两个实例与相同哈希码冲突期间发生的情况?
3)如何解决碰撞?我在文章中读到了关于Hashtable和Chaining for the Dictionary的碰撞情况下的rehashing方法.但我仍然不确定它是如何工作的,因为我不是数学天才.: - \任何人都可以更好地解释它是如何工作的?
非常感谢,Kave
从WPF切换到Silverlight 4.0后,我陷入了一些非常基本的问题.似乎我无法在我的风格中使用Trigger.这会怎么样?
例如,我在ResourceDictionary中创建了一个DataGrid ColumnHeader样式:
<Style x:Key="DataGridColumnHeaderStyle" TargetType="sdk:DataGridColumnHeader" >
<Setter Property="Background" Value="#88800080" />
<Setter Property="Foreground" Value="White" />
<Style.Triggers>
<Trigger Property="SortDirection" Value="{x:Null}">
<Setter Property="Background" Value="{DynamicResource DataGridHeaderBackgroundBrush}" />
<Setter Property="BorderBrush" Value="Transparent" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="SortDirection" Value="{x:Null}" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="{StaticResource DataGridHeaderMouseOverBackgroundBrush}" />
<Setter Property="BorderBrush" Value="{StaticResource DataGridHeaderBorderBrush}" />
</MultiTrigger>
...
Run Code Online (Sandbox Code Playgroud)
从2009年初开始的一些谷歌搜索尝试声称使用转换器,但我完全坚持这一点.如果有人能给我一些如何做的提示,我真的很感激.
我必须实现一个保存窗口最后位置的功能.当应用程序启动时,需要获取并恢复该位置.
现在可能会拆除第二台显示器.如果最后一个位置在现在不可见的监视器上(换句话说,保存的坐标在可见坐标之外),则应捕获此情况并将坐标设置为默认位置而不是最后位置.
为了检索有关监视器的信息,我需要使用Win32.我不容易做这项工作.
我创建了一个Helper CLass:
public static class DisplayHelper
{
private const int MONITOR_DEFAULTTONEAREST = 2;
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern int GetSystemMetrics(int nIndex);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
private static extern UInt32 MonitorFromPoint(Point pt, UInt32 dwFlags);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
private static extern bool GetMonitorInfo(UInt32 monitorHandle, ref MonitorInfo mInfo);
public static void GetMonitorInfoNow(MonitorInfo mi, Point pt)
{
UInt32 mh = MonitorFromPoint(pt, 0);
mi.cbSize = (UInt32)System.Runtime.InteropServices.Marshal.SizeOf(typeof(MonitorInfo));
mi.dwFlags = 0;
bool …Run Code Online (Sandbox Code Playgroud) 当<Label Content="{Binding ItemCount}"/>我的 View 上有一个绑定到 ViewModel 上的属性时。
在视图模型上,我将属性定义为
public int ItemCount
{
get { RowViewModelsCollectionView.Count; }
}
Run Code Online (Sandbox Code Playgroud)
我清楚地要求对 进行计数CollectionView,我希望在其中获得仅可见项目的计数。不幸的是,我得到了整行的计数,即使是那些由于过滤器而没有显示在视图上的行。
更新:
在科尔:
RowViewModelsCollectionView= new ListCollectionView(rowViewModels) {Filter = Contains};
private bool Contains(object obj)
{
RowViewModel rowViewModel = obj as RowViewModel;
if (rowViewModel != null && Books.ContainsKey(rowViewModel.Book))
{
RaisePropertyChanged("ItemCount"); // Trying out to raise it without joy
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我应该如何解决这个问题?
我通过数据属性在下拉列表上创建了一个popover:
<select id="timezone_dropdown" data-content="This is the timezone" rel="popover" data-placement="bottom" data-original-title="Time Zone">
Run Code Online (Sandbox Code Playgroud)
每当我点击一个链接按钮,我想显示浮动在下拉列表上的popover.
<a class="btn timezone_help" href="#">Help</a>
Run Code Online (Sandbox Code Playgroud)
在javascript中,我已经将它定义为:
$(document).ready(function () {
$('.timezone_help').click(show_timezone_help);
})
function show_timezone_help(event){
event.preventDefault();
$('#timezone_dropdown').popover('show');
}
Run Code Online (Sandbox Code Playgroud)
这样就完成了工作,但是当我再次点击按钮时,它仍然保留在那里.有没有办法检查它是否已经打开并在函数中隐藏它,还是有更好的方法?
使用twitter bootstrap,可以非常直接地创建搜索样式输入窗口小部件:

x也适用于Twitter引导程序,但将x放在该位置,需要一些CSS微调.
我设法让x在那个位置,但它不是很可靠.凭借响应式设计和不同的分辨率,x完全被取代.
.filter-close {
float: none;
position: relative;
left: 5em;
top: 1.25em;
z-index: 3;
}
<form action="." method="get" class="form-search">
<a class="close filter-close" href="#">x</a>
<div class="input-append">
{{filter_form.last_name}}<button type="submit" class="btn"><i class='icon-filter'> </i></button> </div>
</form>
Run Code Online (Sandbox Code Playgroud)
在尝试重新发明轮子之前,是否有任何现有的javascript库可以在输入带有x按钮的情况下转换输入?为此目的,像Chosen.js这样的东西?或者任何建议我如何以更好的方式做到这一点?
非常感谢,
我能够使用jquery-validate验证多选,并创建了一个小提琴作为演示.按住Ctrl键取消选择选择,然后单击选择以查看效果.
<form id="myform">
<select id="id_deals-1-sales_item" class="multi_select_mandatory" name="deals-1-sales_item" multiple="multiple">
<option value="1">Hotel 3 Star</option>
<option selected="selected" value="2">Hotel 4 Star</option>
</select>
</form>
$(document).ready(function() {
var validator = $('#myform').validate({
// options
rules: {
"deals-1-sales_item": "required",
},
//ignore: ':hidden:not("#id_deals-1-sales_item")'
});
});
Run Code Online (Sandbox Code Playgroud)
但是一旦我选择了多选,它就会停止工作:看小提琴.
$('#id_deals-1-sales_item').chosen();
Run Code Online (Sandbox Code Playgroud)
虽然研究,我发现已经有人尝试这种具有jquery multiselect替代选择.似乎隐藏的元素在jquery validate中被忽略.我尝试应用该解决方案,但由于Chosen有不同的方法,我卡住了(选择中不存在多选)
在这里有任何jQuery大师可以指出我正确的方向吗?此外,我宁愿使用基于类而不是基于字段名称的解决方案.像这样:
这是我提出的一个解决方案.但不知道该怎么做???.
$.validator.addMethod("needsSelection", function(value, element) {
return $(element).???.length > 0;
});
var validator = $('#myform').validate({
});
$('#myform').find('select.multi_select_mandatory').each(function(){
$(this).change(function(){
$(this).valid();
});
$(this).rules('add', {
needsSelection: ""
});
});
Run Code Online (Sandbox Code Playgroud)
解:
通过下面的eicto解决方案,我能够创建一个基于类而不是基于字段名称的解决方案.当您拥有要立即验证的动态元素而不向服务器提交任何内容时,这将特别有用.
var …Run Code Online (Sandbox Code Playgroud) 我已经定义了这样一个表单:
class RecordForm(Form):
rating = IntegerField('Rating')
Run Code Online (Sandbox Code Playgroud)
如果没有插入值,我会收到如下默认消息:
Not a valid integer value
Run Code Online (Sandbox Code Playgroud)
我希望有一个自定义消息,所以我想出了这个:
class RecordForm(Form):
rating = IntegerField('Rating',[validators.DataRequired("Helllo???")])
Run Code Online (Sandbox Code Playgroud)
自定义消息现在有效,但我有副作用.0(零)不再被接受为整数值.请问我有什么选择?
由于webassets无法在GAE上动态压缩js/css,因此最好的方法是在部署时执行此操作.
经过大量的谷歌搜索后,我想出了下面的脚本来实现这一目标.
起初我认为最好的方法是将javascript路径保留base.html原样并简单地压缩css/js.
cssmin压缩css并覆盖原始.但是,关闭不允许覆盖原始,并且此概念已经失败.
第二个问题是,即使我关闭覆盖原始文件,缓存也会出现问题.因此,每个缩小的css/js的部署都应该带有文件名中的随机数,以便在新部署之后实际获取新版本.根据我提出的概念,这是不可能的.
因此,实现这一目标的唯一方法是修改base.htmlwith sed或者其他东西.
在重新发明轮子之前,有没有更好的方法来做到这一点?非常感谢
import sys, os
import cssmin
def main():
if len(sys.argv) == 1:
return
appId = sys.argv[1]
print "appId", appId
cmd = r'java -jar compiler.jar --js=/src/application/static/f11/f11.js --js_output_file=/src/application/static/f11/f11.min.js'
os.system(cmd)
output = cssmin.cssmin(open('/src/application/static/f11/f11.css').read())
f = open('/src/application/static/f11/f11.css','w')
f.write(output)
# Perform appcfg.py to update GAE server
cmd = r'"\google_appengine\appcfg.py"'
os.system(cmd + " update . " + " -A %s"%appId)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud) 在编辑记录时,如果等待几分钟(喝咖啡)然后再回来按下保存(POST),我会被重定向到主页面而不是登录而数据丢失.
似乎烧瓶登录会话过期太快了.
我做了一些研究并遇到了这个问题.
from flask import session, app
session.permanent = True
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?但即使我尝试这个,我得到这个例外:
File "/Users/kave/workspace/F11A/src/application/__init__.py", line 14, in <module>
session.permanent = True
File "/Users/kave/workspace/F11A/src/lib/werkzeug/local.py", line 355, in <lambda>
__setattr__ = lambda x, n, v: setattr(x._get_current_object(), n, v)
File "/Users/kave/workspace/F11A/src/lib/werkzeug/local.py", line 297, in _get_current_object
return self.__local()
File "/Users/kave/workspace/F11A/src/lib/flask/globals.py", line 20, in _lookup_req_object
raise RuntimeError('working outside of request context')
RuntimeError: working outside of request context
Run Code Online (Sandbox Code Playgroud) .net ×3
jquery ×3
c# ×2
flask ×2
silverlight ×2
django ×1
flask-login ×1
javascript ×1
minify ×1
popover ×1
python ×1
session ×1
user32 ×1
validation ×1
winapi ×1
wpf ×1