我完全没有正则表达式,所以我需要一些帮助来解决我认为最好通过使用正则表达式来解决的问题.
我在C#中有字符串列表:
List<string> lstNames = new List<string>();
lstNames.add("TRA-94:23");
lstNames.add("TRA-42:101");
lstNames.add("TRA-109:AD");
foreach (string n in lstNames) {
// logic goes here that somehow uses regex to remove all special characters
string regExp = "NO_IDEA";
string tmp = Regex.Replace(n, regExp, "");
}
Run Code Online (Sandbox Code Playgroud)
我需要能够遍历列表并返回每个项目而没有任何特殊字符.例如,第一项是"TRA9423",第二项是"TRA42101",第三项是TRA109AD.
是否有正则表达式可以为我完成此操作?
此外,该列表包含超过4000个项目,因此我需要搜索和替换,以尽可能高效和快速.
编辑:我应该指定az,AZ和0-9旁边的任何字符在我的环境中都是特殊的.
我正在尝试使用jQuery AJAX帖子调试ASP.NET 4.0网站中发生的405错误,并且我从IIS日志文件中获得以下内容.
2012-07-02 15:15:37 XXX.XX.XX.XXX POST /AjaxWebMethods.aspx/TestWebMethod - 443 - XXX.XX.XX.XX
Mozilla/5.0+(Windows+NT+5.1;+rv:13.0)+Gecko/20100101+Firefox/13.0.1 405 0 0 218
我的问题:405 0 0 218日志末尾的含义是什么?我假设405部分是客户端错误号,但剩下的3个数字是多少?
我已经看到了程序员在代码中创建实体上下文时所采用的两种不同方式.
第一个是这样的,你可以在MSDN代码示例中找到它:
public void DoSomething() {
using (TaxableEducationEntities context = new TaxableEducationEntities()) {
// business logic and whatever else
}
}
Run Code Online (Sandbox Code Playgroud)
第二种是在一些封装了业务逻辑的类中将上下文创建为私有属性.所以你会有类似的东西:
public class Education_LINQ {
private TaxableEducationEntities context = new TaxableEducationEntities();
public void DoSomething() {
var result = from a in context.luAction
select a;
// business logic and whatever else
}
}
Run Code Online (Sandbox Code Playgroud)
哪种方式更有效?
假设您有两个方法,一个名为DoSomething1(),另一个名为DoSomething2(),两个方法都包含using语句来打开上下文并对其执行任何操作.你是否一个接一个地调用一个方法,是否会有任何多余的开销,因为基本上两个方法都创建了上下文,然后在它们完成后清理它?而不是只有一个私有属性在实例化类对象时创建,然后在对象超出范围时进行清理?
由于live()方法从版本1.7开始不推荐使用,因此我开始浏览我的源代码并将所有实时事件处理程序转换为on().我的印象是,改变很简单,一切都会像以前一样有效; 但是,我遇到了一些行为不正常的代码.
我有以下jQuery选择绑定表标记的click事件...
$('table.accordion-header').live("click", function ($e) {
// gobs of code
}
Run Code Online (Sandbox Code Playgroud)
...它工作得很好(即 - 即使在页面上发生异步回发后,我的表标记点击事件也会引发).但是,如果我将代码更改为以下内容
$('table.accordion-header').on("click", function ($e) {
// gobs of code
}
Run Code Online (Sandbox Code Playgroud)
然后,在页面上发生任何异步回发后,不再引发click事件.请注意 - click事件确实可以处理任何异步回发,但之后它不再有效.那我在这里错过了什么?
我有一个aspx,在正文的onload事件期间运行以下javascript函数.
<body onload="startClock();">
Run Code Online (Sandbox Code Playgroud)
但是,我将aspx设置为使用母版页,因此aspx中不存在body标签.如何在页面被命中时注册startClock函数并仍然使用主页?
有人可以根据性能,内存使用,编码的简易性,正确的事情等因素,在使用语句中包含DataContext或在LINQ-SQL中包含Data/Text之间的优缺点.
更新:在一个特定的应用程序中,我经历过,没有将DataContext包装在使用块中,随着活动对象未针对GC发布,内存使用量不断增加.在下面的示例中,如果我持有对q的列表和q的访问实体的引用,我创建了一个未针对GC发布的对象图.
使用DataContext
using (DBDataContext db = new DBDataContext())
{
var q =
from x in db.Tables
where x.Id == someId
select x;
return q.toList();
}
Run Code Online (Sandbox Code Playgroud)
DataContext没有使用和保持活着
DBDataContext db = new DBDataContext()
var q =
from x in db.Tables
where x.Id == someId
select x;
return q.toList();
Run Code Online (Sandbox Code Playgroud)
谢谢.
我发现在用户控件中保留属性值的唯一方法是使用ViewState.
public string Title {
get { return Convert.ToString(ViewState["Title"]); }
set { ViewState["Title"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
我不能说我对此印象非常深刻,因为用户控件的属性越多,你就越容易陷入ViewState.是否有更好的方法来坚持物业?
有许多方法可以比较字符串.通过一种方式比另一种方式获得性能提升吗?
我总是选择像这样比较字符串:
string name = "Bob Wazowski";
if (name.CompareTo("Jill Yearsley") == 0) {
// whatever...
}
Run Code Online (Sandbox Code Playgroud)
但我发现很少有人这样做,如果有的话,我看到更多的人只是做一个直接的==比较,据我所知,这是比较字符串的最差方式.我错了吗?
另外,它是如何比较LINQ查询中的字符串的?例如,我喜欢做以下事情:
var results = from names in ctx.Names
where names.FirstName.CompareTo("Bob Wazowski") == 0
select names;
Run Code Online (Sandbox Code Playgroud)
但同样,我看到很少有人在他们的LINQ查询中进行字符串比较.
有人知道通过使用扩展方法获得列表框控件中所有选定项目的顺畅方法吗?
而且,请告诉我,关于如何获得这样一个列表是无关紧要的,因为最终一切都使用循环迭代项目并找到所选择的项目.
asp.net ×3
linq ×3
c# ×2
.net ×1
c++ ×1
class ×1
datacontext ×1
entity ×1
iis ×1
javascript ×1
jquery ×1
linq-to-sql ×1
listbox ×1
logging ×1
master-pages ×1
onload-event ×1
oop ×1
performance ×1
properties ×1
regex ×1
string ×1
using ×1
viewstate ×1