小编mto*_*one的帖子

在javascript中定义另一个函数内的函数

function foo(a) {
    if (/*some condition*/) {
        // perform task 1
        // perform task 3
    }
    else {
        // perform task 2
        // perform task 3
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个功能,其结构类似于上面的.我想将任务3抽象为一个函数,bar()但是我希望将此函数的访问权限限制在范围内foo(a).

为了达到我想要的目的,改为以下是否正确?

function foo(a) {
    function bar() {
        // perform task 3
    }

    if (/*some condition*/) {
        // perform task 1
        bar();
    }
    else {
        // perform task 2
        bar();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果以上是正确的,bar()每次foo(a)调用时都会重新定义吗?(担心这里浪费cpu资源)

javascript

73
推荐指数
4
解决办法
6万
查看次数

查看创建Regex对象的模式是什么?

我有一个使用new Regex(string pattern)构造函数创建的Regex对象,之后是否有办法查看正则表达式对象的创建模式?

我似乎无法访问正则表达式或RegexOptions对象中的"模式"字符串成员.

上下文:我要问的原因是我在初始化时(模式存储在配置文件中)早期创建了一些正则表达式对象,然后将它们传递给另一个经常使用的类.但是,我还需要在运行时将模式字符串与存储在SQL数据库中的字符串进行比较.

除了正则表达式对象之外,我宁愿不必传递带有模式的字符串.我也觉得在启动时创建一次对象并不是一个坏主意,因为正则表达式将被重复使用数百次?

随意提供替代建议.

.net c# regex

10
推荐指数
2
解决办法
1941
查看次数

Linq查询加入结构中的列表

我有一个struct字典,其中一个成员是一个包含适用于每个字典项的不同元素的列表.

我想针对每个项目加入这些元素,以便过滤它们和/或按元素对它们进行分组.

在SQL中我熟悉加入表/查询以获得所需的多行,但我是C#/ Linq的新手.由于"列"可以是已经与正确的字典项关联的对象/列表,我想知道如何使用它们来执行连接?

以下是结构示例:

name   elements
item1  list: elementA
item2  list: elementA, elementB
Run Code Online (Sandbox Code Playgroud)

我想要一个提供此输出的查询(count = 3)

name   elements
item1  elementA
item2  elementA
item2  elementB
Run Code Online (Sandbox Code Playgroud)

最终,将它们分组为:

   element    count
   ElementA   2
   ElementB   1
Run Code Online (Sandbox Code Playgroud)

这是我的代码开始计算字典项目.

    public struct MyStruct
    {
        public string name;
        public List<string> elements;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MyStruct myStruct = new MyStruct();
        Dictionary<String, MyStruct> dict = new Dictionary<string, MyStruct>();

        // Populate 2 items
        myStruct.name = "item1";
        myStruct.elements = new List<string>();
        myStruct.elements.Add("elementA");
        dict.Add(myStruct.name, myStruct);

        myStruct.name = "item2"; …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-objects

5
推荐指数
1
解决办法
1937
查看次数

标签 统计

c# ×2

.net ×1

javascript ×1

linq ×1

linq-to-objects ×1

regex ×1