我对CSS选择器有困难,我希望有人可以帮助我.
我有一些看起来像这样的HTML:
<table class=myTable>
<tr>
<td>this is the td of interest</td>
</tr>
<tr>
<td>
<table>
<tr><td>I don't want this td!</td></tr>
</table>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我正在尝试将背景图像应用到FIRST tr的第一个td.所以我尝试了以下方法:
table.myTable tr:first-child td:first-child {
background-image: url(someUrl.gif);
}
Run Code Online (Sandbox Code Playgroud)
但这也是找到嵌套表的第一个tr的第一个td.我尝试过使用>和+的不同组合,但没有运气.有人有主意吗?
注意:我的目标是提供与IE7 +兼容的解决方案.
我最近遇到了一些代码,通过硬编码替换了交换机的使用
Dictionary<string (or whatever we would've been switching on), Func<...>>
Run Code Online (Sandbox Code Playgroud)
而且无论转换到底在哪里,它都会改为dict ["value"].调用(...).代码在某种程度上感觉不对,但与此同时,这些方法确实看起来更清晰一些,特别是在有很多可能的情况下.我不能给出任何关于为什么这是好的或坏的设计的理由,所以我希望有人可以给出一些支持/谴责这种代码的理由.性能有提升吗?失去清晰度?
例:
public class A {
...
public int SomeMethod(string arg){
...
switch(arg) {
case "a": do stuff; break;
case "b": do other stuff; break;
etc.
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
变
public class A {
Dictionary<string, Func<int>> funcs = new Dictionary<string, Func<int>> {
{ "a", () => 0; },
{ "b", () => DoOtherStuff(); }
... etc.
};
public int SomeMethod(string arg){
...
funcs[arg].Invoke();
...
}
...
}
Run Code Online (Sandbox Code Playgroud) 我正在弄乱LINQ,我很想知道我能用它做些什么.我想知道是否有可能在结果集上施加条件的LINQ查询.例如,假设我有几个单词的列表,我希望找到形成链的单词集(即单词的最后一个字母=下一个单词的第一个字母,对链中的第一个或最后一个单词没有约束) .像"你好,老,乳制品,黄色,世界......"之类的东西.
从这些集合中,我想要采用形成最长链的集合.
LINQ可以这样做吗?
var chains = (from word in words
select word
where result.IsChain()).Max(x => x.Length);
Run Code Online (Sandbox Code Playgroud) 我试图完成的任务是给定一个输入模式,例如 1 2 3 3 2 4 2 1,通过字典查找符合给定模式的单词。在我的代码中,我尝试将给定的字符串转换为正则表达式,如下所示:
(?<1>.)(?<2>.)(?<3>.)(\k<3>)(\k<2>)(?<4>.)(\k<2>)( \k<1>)
(在任何人开始抨击这里使用点之前,因为我的输入是一个只有真实单词的字典文件,我留下了点以获得更清晰的表达,而不是指定字符范围。)
这个表达式设法正确地找到了这个词,但它有一个缺陷。使用 1 2 3 4 5 6 等模式时,问题变得非常明显。我的算法生成以下正则表达式:
(?<1>.)(?<2>.)(?<3>.)(?<4>.)(?<5>.)(?<6>.)
这是错误的,因为它将匹配任何 6 个字符的字符串,而没有考虑到每个组不应该匹配任何已被先前组匹配的字符。换句话说,它没有考虑到每个字母都是不同的;没有重复。
所以我尝试在互联网上寻找语法以排除字符类中的命名组,即
[^\1](无效)、[^(\k<1>)](无效)、[^${1}](无效)...等。
在 .NET 文档中,它表明 \p{name} 是字符类中的有效语法,但我尝试了 [^\p{1}] 并且也不起作用。
所以,问题仍然存在......是否可以从进一步匹配中排除命名组?或者,我还能如何解决这个问题?
更新
根据我在这里得到的回复发布我的最终解决方案。此方法采用一个字符串,指定一个人正在寻找的模式,并将其转换为一个正则表达式,然后我将其应用到字典中并找到符合该模式的所有单词。
string pattern = "12332421";
private void CreateRegEx()
{
string regex = "^";
for( int i = 0; i < pattern.Length; i++ )
{
char c = pattern[i];
if (char.IsDigit(c))
{
if (isUnique(c))
{
regex += "(.)(?!.*\\" + c + ")(?<!\\" + c + ".+)"; …Run Code Online (Sandbox Code Playgroud) 我正在读这本书,它每次运行应用程序时都会尝试使用初始化程序来创建数据库,所以代码片段是这样的:
protected void Application_Start() {
Database.SetInitializer(new DropCreateDatabaseAlways<MusicStoreDB>());
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Run Code Online (Sandbox Code Playgroud)
我无法理解这一部分:
new DropCreateDatabaseAlways<MusicStoreDB>()
Run Code Online (Sandbox Code Playgroud)
这是什么语法?什么<MusicStoreDB>()意思?
我知道这不是一个奇特的问题,但我需要帮助.
谢谢.