我们的一个项目中有很多代码如下所示:
internal static class Extensions
{
public static string AddFoo(this string s)
{
if (!string.IsNullOrEmpty(s)) return s + "Foo";
return "Foo";
}
}
Run Code Online (Sandbox Code Playgroud)
有没有明确的理由去做"除了以后更容易公开这种类型?"
我怀疑它只在非常奇怪的边缘情况下(Silverlight中的反射)或根本不重要.
这似乎应该是微不足道的,但我对正则表达式并不是很好,这对谷歌来说似乎并不容易.
我需要一个以字符串'dbo'开头的正则表达式.并以字符串'_fn'结尾
就我而言,我不关心这两个字符串之间的字符是什么,只要开头和结尾都是正确的.
这是为了匹配SQL Server数据库中的函数.
例如:
dbo.functionName_fn - Match
dbo._fn_functionName - No Match
dbo.functionName_fn_blah - No Match
Run Code Online (Sandbox Code Playgroud) 这是一个挑战问题,而不是我迫切需要的东西,所以不要整天花在它们身上.
我在2000年左右建立了一个约会网站(早已不复存在),其中一个挑战是计算用户之间的距离,以便我们可以在半径X英里内展示您的"匹配".为了说明问题,给定以下数据库模式(粗略地):
USER TABLE UserId UserName ZipCode
ZIPCODE表ZipCode纬度经度
USER和ZIPCODE加入USER.ZipCode = ZIPCODE.ZipCode.
您将采取什么方法来回答以下问题:在给定用户的邮政编码的X英里范围内的其他用户使用的邮政编码.
我们使用了2000年人口普查数据,其中包含邮政编码表及其近似的经纬度.
我们还使用Haversine公式来计算球体上任意两点之间的距离......非常简单的数学.
至少对我们来说,这个问题是我们19岁的大学生,真正成为了如何有效地计算和/存储从所有成员到所有其他成员的距离.一种方法(我们使用的方法)是导入所有数据并计算从每个邮政编码到每个其他邮政编码的距离.然后,您将存储并索引结果.就像是:
SELECT User.UserId
FROM ZipCode AS MyZipCode
INNER JOIN ZipDistance ON MyZipCode.ZipCode = ZipDistance.MyZipCode
INNER JOIN ZipCode AS TheirZipCode ON ZipDistance.OtherZipCode = TheirZipCode.ZipCode
INNER JOIN User AS User ON TheirZipCode.ZipCode = User.ZipCode
WHERE ( MyZipCode.ZipCode = 75044 )
AND ( ZipDistance.Distance < 50 )
Run Code Online (Sandbox Code Playgroud)
当然,问题是ZipDistance表中会有很多行.它并非完全不可行,但它确实很大.此外,它需要对整个数据集进行完整的预处理,这也不是无法管理的,但不一定是可取的.
无论如何,我想知道你们中的一些大师会对这样的事情采取什么方法.此外,我认为这是程序员不时要解决的常见问题,特别是如果您考虑的算法类似的问题.我对一个彻底的解决方案很感兴趣,其中至少包括所有部分的HINTS,以便快速有效地完成这项工作.谢谢!
我有一个MVC路由,它让我在运行IIS的登台服务器上下地狱.我在本地运行Visual Studio 2010的开发服务器.
这是一个实际在我的开发箱上工作的示例网址:
Root/CPUBoards/Full+Size
Results
Server Error404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
Run Code Online (Sandbox Code Playgroud)
这是我看到的完整行为.
本地主机:
Root/CPUBoards/Full Size - Resolves
Root/CPUBoards/Full%20Size - Resolves
Root/CPUBoards/Full+Size - Resolves
Run Code Online (Sandbox Code Playgroud)
使用IIS 7.0临时服务器:
Root/CPUBoards/Full Size - Resolves
Root/CPUBoards/Full%20Size - Resolves
Root/CPUBoards/Full+Size - 404 Not Found Error.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我需要使用编码版本有几个原因...不会浪费你的时间.
HttpUtility.UrlEncode("Full Size")返回带有加号的版本... Full + Size.这适用于我的开发箱,但不适用于登台服务器.我宁愿让它在服务器上工作,因为我已经测试了所有其他工作并在本地工作,但我不知道从哪里开始查看服务器配置以使其行为方式相同.
谢谢!
请仔细阅读:这有点不寻常,你会想要说"那不是如何使用正则表达式"或"伙计,只需使用String.SubString(),"等...
我需要编写一个正则表达式(使用预先存在的方法),它将匹配文本BETWEEN花括号,但不是花括号本身.
例如: "{MatchThisText}" 和 "La la la {MatchThisText} la la la ..."
两者都应匹配: "MatchThisText"
一年前有人问过这个确切的问题,除了"MatchThisText"之外,他还得到了一堆正则表达式与大括号相匹配的解决方案,导致匹配"{MatchThisText}",这不是他(或我)需要.
如果有人可以编写一个实际上只匹配花括号之间的字符的正则表达式,我真的很感激.它应该允许任何ASCII值,并应在第一个结束括号停止匹配.
例如: "{retailCategoryUrl}/{filters}"
应匹配: retailCategoryUrl和过滤器
但不匹配: "retailCategoryUrl}/{filters"(除了外部大括号外)
嘿,这对我来说真的很棘手,所以请原谅这个问题,如果对你们这些人来说这是微不足道的.
谢谢!
有谁知道如何编写LINQ to SQL语句来返回表中的每第n行?我需要在分页数据网格中的每个页面顶部获取项目的标题,以便快速扫描用户.所以,如果我想要第一条记录,那么之后的第三条记录,来自以下名称:
Amy,Eric,Jason,Joe,John,Josh,Maribel,Paul,Steve,Tom
我会得到艾米,乔,玛丽贝尔和汤姆.
我怀疑这可以做到...... LINQ to SQL语句已经结合排序和分页调用ROW_NUMBER()SQL函数.我只是不知道如何取回每一个项目.SQL语句就像WHERE ROW_NUMBER MOD 3 = 0,但我不知道用于获取正确SQL的LINQ语句.
我需要将ASP.NET的默认时区设置为亚洲/达卡或GMT + 6时区.但我找不到全球改变它的方法.Stackoverflow和Web的其余部分有很多参考,通过获取时区信息并计算每次需要DateTime对象的正确时间.
但请相信我,我不想这样做.所以不要给我这样的建议.我想将时区设置为亚洲/达卡或GMT + 6,最好是从web.config.(类似我们在PHP中使用php.ini)所以每次我需要DateTime对象时,无论时区对于服务器是什么时间都用我的时区进行评估.
这可能吗?如果可能的话怎么样?在此先感谢您的解决方案:)
有时需要让您的应用程序打开文件的默认应用程序.例如,要打开PDF文件,您可以使用:
System.Diagnostics.Process.Start("Filename.pdf");
Run Code Online (Sandbox Code Playgroud)
要打开图像,您只需使用具有不同文件名的相同代码:
System.Diagnostics.Process.Start("Filename.gif");
Run Code Online (Sandbox Code Playgroud)
一些扩展(例如.gif)几乎总是有一个默认的处理程序,即使在基本的Windows安装中也是如此.但是,某些扩展(例如.pdf)通常没有安装应用程序来处理它们.
在这些情况下,在调用Process.Start(fileName)之前,最好确定应用程序是否与要打开的文件的扩展名相关联.
我想知道如何最好地实现这样的事情:
static bool ApplicationAssociated(string extension)
{
var extensionHasAssociatedApplication = false;
var condition = // Determine if there is an application installed that is associated with the provided file extension.;
if (condition)
{
extensionHasAssociatedApplication = true;
}
return extensionHasAssociatedApplication;
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个可以在Windows Startup上运行的应用程序.
当应用程序在我的PC真正解决之前陷入困境时,我无法忍受,这是一个非关键的应用程序.我希望我的应用程序礼貌地等待所有其他启动项目完成并解决,以便用户的PC在开始执行任何工作之前变得响应.
我该如何检测这种情况?我想我可以遍历注册表并查找所有正在运行的启动进程,或者使用长时间计时器.我只是希望我可能会使用另一种不那么狡猾的技巧.
编辑:该应用程序具有UI,无法作为服务运行.它有一个托盘模式.它做了一些图像渲染.