这是一个带foreach循环的简单方法:
IEnumerable<XElement> FieldsToXElements(object instance)
{
var fieldElements = new List<XElement>();
foreach (var field in instance.GetType().GetFields(instance))
{
fieldElements.Add(new XElement(field.Name, field.GetValue(instance)));
}
return fieldElements;
}
Run Code Online (Sandbox Code Playgroud)
有点难看.如果在LINQ中有一些运算符意味着"做某事"(例如Action对LINQ语句中选择的每一个执行一个),它会看起来更好,更简洁:
IEnumerable<XElement> FieldsToXElements(object instance)
{
var fieldElements = new List<XElement>();
from field in instance.GetType().GetFields(instance))
let name = field.Name
let value = field.GetValue(instance)
do fieldElements.Add(new XElement(name, value));
return fieldElements;
}
Run Code Online (Sandbox Code Playgroud)
我意识到这是主观的,只是我的意见.对于一个只有一行调用方法的foreach循环do,在我看来," "运算符是有意义的.但我想知道MS的任何人是否也想过同样的事情.这样的LINQ运营商是否计划在任何即将发布的版本中(例如,与C#4.0首次亮相)?
这是另一个带谓词的例子,虚拟do运算符真正使代码看起来更清晰.这个:
IEnumerable<XElement> FieldsToXElements
(object instance, Func<FieldInfo, bool> predicate)
{
var fieldElements = new List<XElement>();
foreach (var field …Run Code Online (Sandbox Code Playgroud) 我知道你可以正常使用get_class($ this)但我需要在静态函数中获取类的名称,其中对象尚未实例化.
请参阅以下代码:
class ExampleClass
{
static function getClassName()
{
echo get_class($this); // doesn't work unless the object is instantiated.
}
}
$test1 = new ExampleClass();
$test1->getClassName(); // works
ExampleClass::getClassName(); // doesn't work
Run Code Online (Sandbox Code Playgroud) 网上有很多关于python性能的文章,你读的第一件事:不应该使用'+'连接字符串:避免使用s1 + s2 + s3,而是使用str.join
我尝试了以下内容:将两个字符串连接为目录路径的一部分:三种方法:
这是我的代码:
import os,time
s1='/part/one/of/dir'
s2='part/two/of/dir'
N=10000
t=time.clock()
for i in xrange(N):
s=s1+os.sep+s2
print time.clock()-t
t=time.clock()
for i in xrange(N):
s=os.sep.join((s1,s2))
print time.clock()-t
t=time.clock()
for i in xrange(N):
s=os.path.join(s1,s2)
print time.clock()-t
Run Code Online (Sandbox Code Playgroud)
这里的结果(python 2.5 WinXP)
0.0182201927899
0.0262544541275
0.120238186697
Run Code Online (Sandbox Code Playgroud)
不应该完全相反吗?
我目前有两个表:
CREATE TABLE files_list
(
'listid' INT,
'name' VARCHAR(25),
'synonym' VARCHAR(25),
'description' VARCHAR(25)
);
CREATE TABLE files_tags
(
'tag_name' VARCHAR(25),
'listid' INT
);
Run Code Online (Sandbox Code Playgroud)
如果有人使用关键字"龙球",目前,我使用以下查询来搜索my_list以查找可能的匹配项:
SELECT *
FROM files_list
WHERE name LIKE '%dragon%'
OR synonym LIKE '%dragon%'
OR description LIKE '%dragon%'
OR name LIKE '%ball%'
OR synonym LIKE '%ball%'
OR description LIKE '%ball%'
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用一个查询搜索两个表.我想向用户显示搜索结果中的以下数据:名称,同义词,描述和所有标签.
我的问题
1.有没有办法让当前的mysql查询更短?2.如何将其与files_tags表格结合使用,以显示files_list哪些行匹配files_tags但不在files_list?- 显示files_tags`中files_list匹配的files_list, but may not in行?
您可以在http://hsbsitez.com/上查看当前显示的结果
是否有可能在没有任何比较的情况下找到最大的两个整数?我找到了一些解决方案
if(!(a/b)) // if a is less than b then division result will be zero.
{
cout << " b is greater than a";
}
else if (!(a-b)) // we know a is greater than or equal to b now. check whether they are equal.
{
cout << "a and b are equal";
}
else
cout << "a is greater than b";
Run Code Online (Sandbox Code Playgroud)
但如果(c)或if(!c)是零的比较.此外,它不适用于负数.实际上我需要一个避免任何if语句的解决方案.相反,我应该使用switch语句和算术运算符.感谢名单.
我认为我会聪明并使用子查询一次性获取我的报告.但在遇到问题并阅读文档后,我发现我的方法在MySQL中不起作用.我的内部查询返回~100条记录,外部查询扫描20000条记录.当我将外部查询限制为20条记录时,它运行20秒 - 非常慢.
我想知道是否有可能以某种方式重构它,以便外部查询中的每个记录都不会运行内部查询?
select p1.surname ,p1.name,p1.id,r1.start_date,r1.end_date,c1.short_name
FROM ejl_players p1
left JOIN ejl_registration r1 ON ( r1.player_id = p1.id )
left JOIN ejl_teams t1 ON ( r1.team_id = t1.id )
left JOIN ejl_clubs c1 ON ( t1.club_id = c1.id )
where r1.season=2008
and p1.id in
(
SELECT p.id
FROM ejl_players p
left JOIN ejl_registration r ON (r.player_id = p.id)
left JOIN ejl_teams t ON (r.team_id = t.id)
left JOIN ejl_clubs c ON (t.club_id = c.id)
WHERE r.season = …Run Code Online (Sandbox Code Playgroud) 我有一个FileReference对象数组,每个对象都附加了几个侦听器,我应该删除它的处理程序方法中的每个侦听器,还是应该在完整的处理程序中删除它们?
我在某处读到了为侦听器使用弱引用,但我认为明确删除侦听器会更好(是吗?/不?)
for each(var f:Object in fileCollection){
var myFile:FileReference = f.file;
myFile.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadCompleteData)
myFile.addEventListener(ProgressEvent.PROGRESS, onProgress);
myFile.addEventListener(IOErrorEvent.IO_ERROR, onError);
myFile.addEventListener(Event.COMPLETE, onComplete);
}
private function onUploadCompleteData(e:DataEvent):void{
// doin my thing here
removeListeners(e)
}
private function removeListeners(e:Event):void{
var myFile:FileReference = FileReference(e.target)
myFile.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadCompleteData)
myFile.removeEventListener(ProgressEvent.PROGRESS, onProgress);
myFile.removeEventListener(IOErrorEvent.IO_ERROR, onError);
myFile.removeEventListener(Event.COMPLETE, onComplete);
}
Run Code Online (Sandbox Code Playgroud) 有没有办法在Javascript函数中访问屏幕显示的DPI设置?
我试图在页面上放置一个HTML面板,当用户的DPI设置为大(120)时,它会关闭该位置.我需要能够知道DPI是什么,所以我可以相应地调整位置.
我想使用实体框架.但是,我还要求允许我的用户在我们的系统中定义自定义字段.我仍然想使用实体框架,而不是使用带有哈希表属性的部分类.
下面是我想到的解决方案,但它并不简单,所以我想看看是否有更好的方法.
我的想法是,有一个ModelManager对象,它将在相应的表上创建一个列,修改EDM文件,并使用edmgen.exe编译文件.这将全部发生在与应用程序不同的进程和/或应用程序域中,因为应用程序将引用生成的程序集.当应用程序重新启动时,它将可以访问新添加的字段.
这是使用实体框架执行此操作的唯一方法吗?谢谢你的时间.
有谁知道浏览器是否保证Node类型的DOM Text不被解释为HTML?
更多细节如下.
背景
我正在为朋友建立一个简单的网络评论系统,我一直在考虑XSS攻击.我不认为过滤或转义HTML标签是一个非常优雅的解决方案 - 很容易想出一个会过滤掉过滤器的卷积.根本问题在于,我想保证,对于某些内容(即随机未经身份验证的Web用户POST的内容),浏览器永远不会尝试解释或运行内容.
简单(文本)开始
想到的第一个想法就是使用Content-Type: text/plain,但这必须适用于整个页面.您可以IFRAME在页面中间放置一个明文,但它很难看,如果用户点击框架,它会产生焦点问题.
的innerText /的textContent/JQuery的
事实证明,有些浏览器特定的(innerText在IE中,textContent在FF,Safari等中)属性,在设置时,需要创建单个Text节点.
JQuery试图通过实现一个text(val)跳过特定于浏览器的属性并直接进入的函数来避免浏览器特定属性的差异document.createTextNode(text),正如您所猜测的那样,创建一个Text节点.
W3 DOM Text Node小号
所以我认为这接近我想要的,它看起来很好 - Text节点不能有孩子,看起来它们不能被解释为HTML.但我不是100%肯定官方文件.
Node:http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1950641247Text:http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1312295772textContent:http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent部分来自textContent特别令人鼓舞,因为它说"在设置时,也不执行解析,输入字符串被视为纯文本内容." 但这是所有Text节点的基础,还是只有你设置的节点textContent?这似乎是一个愚蠢的狡辩,但它可能很重要,因为IE不支持textContent(见上文).
回到最初的问题
任何人都可以确认/拒绝这将有效吗?也就是说,无论内容是什么,符合w3 DOM的浏览器都不会将Text节点解释为HTML?我非常感激这种折磨的不确定性已经解决了.
感谢您的时间!
javascript ×2
mysql ×2
php ×2
sql ×2
apache-flex ×1
c# ×1
c#-4.0 ×1
c++ ×1
comparison ×1
display-dpi ×1
dom ×1
dpi ×1
if-statement ×1
jquery ×1
linq ×1
performance ×1
python ×1
string ×1
xss ×1