标签: lambda

PHP bug(使用lambda函数)

我想我偶然发现了PHP中的一个错误.但是,可以肯定的是,我先问这里.

$k=0;
echo preg_replace_callback('/./', function($groups) use ($k) {
    return $k++;
}, 'xxxxxx');
Run Code Online (Sandbox Code Playgroud)

脚本输出:000000

预期产量:012345

我错过了什么吗?

php lambda

0
推荐指数
1
解决办法
85
查看次数

Python:通过lambda包装函数

我有一些代码

class EventHandler:
    def handle(self, event):
        pass

def wrap_handler(handler):
    def log_event(proc, e):
        print e
        proc(e)
    handler.handle = lambda e: log_event(handler.handle, e)

handler = EventHandler()
wrap_handler(handler)
handler.handle('event')
Run Code Online (Sandbox Code Playgroud)

这将最终导致无限递归.在wrap_handler改为

def wrap_handler(handler):
    def log_event(proc, e):
        print e
        proc(e)
    # handler.handle = lambda e: log_event(handler.handle, e)
    handle_func = handler.handle
    handler.handle = lambda e: log_event(handle_func, e)
Run Code Online (Sandbox Code Playgroud)

该程序将变得正常.这是为什么?还有谁能告诉我更常用的功能包装方法?

python lambda decorator wrapper

0
推荐指数
1
解决办法
2707
查看次数

Lambda从同一个孩子得到总和和单值

我有一个问题,这个查询试图从同一个孩子得到一个和一个值

1级

class Project{
    public int Id { get; set; }
    public string Name { get; set; }
    public IEnumerable<SubProject> SubProjects { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

2级

class SubProject{
    public int Id { get; set; }
    public string Description { get; set; }
    public IEnumerable<Week> Weeks { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

3级

class Week{
    public int Week { get; set; }
    public int Hours { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是在一个范围内的所有周,在这样的新类列表中获得一个项目

class ProjectOverview{
    public int Id { get; set; }
    public …
Run Code Online (Sandbox Code Playgroud)

c# lambda

0
推荐指数
1
解决办法
847
查看次数

lambda中的几个陈述

我有以下声明

var evarage = productionreportentry
              .Sum(productionReportEntry => productionReportEntry.Cycletime);
Run Code Online (Sandbox Code Playgroud)

我想在Sum lambda中添加一些日志记录.这可能吗?

.net c# lambda

0
推荐指数
1
解决办法
52
查看次数

我无法理解这是如何工作的x => x.Id == _purchase.Centre.Id?

我无法理解以下内容: x => x.Id == _purchase.Centre.Id

代码在这里:

private void LoadCentreOptions()
{
    MaterialCentreDataSource mcds = new MaterialCentreDataSource();
    List<MaterialCentre> centres = mcds.GetAll() as List<MaterialCentre>;

    _blankCentre = new MaterialCentre()
    {
        Name = Strings.JournalViewModel_CreditedPartyOption_NotSpecified
    };

    centres.Insert(0, _blankCentre);
    _centreOptions = new ReadOnlyCollection<MaterialCentre>(centres);

    if (_purchase.Centre == null)
        _purchase.Centre = _blankCentre;
    else
        _purchase.Centre = _centreOptions.First(x => x.Id == _purchase.Centre.Id);
}
Run Code Online (Sandbox Code Playgroud)

在调试时,我正在看X.Id增加.怎么可能?

.net c# linq lambda

0
推荐指数
1
解决办法
2872
查看次数

C#,lambda,linq

假设我有一个包含id列表的int列表.我有一个linq表,我想返回一个特定的列,但只有linq表的ID等于int列表中的任何ID.

到目前为止,我有:

dc.tb_References.SelectMany(n => n.ID == ids).ToList();
Run Code Online (Sandbox Code Playgroud)

在sql我会写:

SELECT Column_Name from Table where ID in (1,2,3,4)
Run Code Online (Sandbox Code Playgroud)

我一直在谷歌搜索,但我找不到我正在寻找的东西.有人有任何提示吗?我想坚持使用lambda表达式.

c# linq lambda

0
推荐指数
1
解决办法
1004
查看次数

这个Lambda OrderBy在我的案例中似乎是多余的 - 是吗?

我不想要任何不必要的代码,但我也希望"安全".经验观察表明,下面的OrderBy什么都不做 - 列表已经正确排序.我可以依赖于这种情况,并删除OrderBy线吗?

HashSet<int> hashSet = new HashSet<int>();
List<int> listInts = new List<int>();
using (var file = new System.IO.StreamReader(selectedFile)) {
    string line;
    int lineNum = 0;
    int Offset = (int)numericUpDownLinesOfContext.Value;
    while ((line = file.ReadLine()) != null)     {
        lineNum++;
        if (line.Contains(PlatypusToSearchFor)) {
            // This adds the lines before and after that will provide the desired context
            // (N lines from the log file before and after the searched for value)
            hashSet.UnionWith(Enumerable.Range(lineNum - Offset, Offset * 2 + 1));
        }
    }
    // …
Run Code Online (Sandbox Code Playgroud)

c# generics lambda arraylist

0
推荐指数
1
解决办法
173
查看次数

如果是lambda表达式中的语句和赋值

我有一个lambda语句,其中包含如下映射:

public enum Status
{
    Completed,
    InComplete,
    Ok
}
Run Code Online (Sandbox Code Playgroud)

查询:

var courses = query.Select(c => new SomeModel
      {
          Status = c.someQuery() ? Status.Completed : Status.Ok
      });
Run Code Online (Sandbox Code Playgroud)

所以我希望Status具有多个if语句而不仅仅是三元操作.例如.

var courses = query.Select(c => new SomeModel
      {
          Status = if(c.someQuery())
                   { 
                       return Status.Completed;
                   }
                   else if(c.someOtherQuery())
                   {
                       return Status.InComplete;
                   }
                   else if(c.someOtherQuery1())
                   {
                       return Status.Ok;
                   }
      });
Run Code Online (Sandbox Code Playgroud)

那我怎么做到这样的事情呢?我正在使用Entity框架ORM.

c# linq lambda entity-framework

0
推荐指数
1
解决办法
1万
查看次数

STL <list>正确生成和删除项目

  1. 我想知道,如果使用这个概念正确删除使用"new"生成的对象.
  2. 我没有使用"bind"而不是"bind2nd".我该怎么做呢?
  3. 最后一个问题:我如何使用lambda术语而不是命名函数?

为什么我使用列表?我决定采用列表而不是向量,因为我的对象没有排序.在最后,我想给面向对象带来一些"瀑布式"代码,主要是因为性能问题(你会在这里看到问题),所以我需要一个概念,我可以快速访问容器层次结构中的对象让他们彼此沟通,这也很快.也许想到模块化合成器.

class Layer {
    private:
    string name;
    bool active;
    public:
    Layer();
    Layer(string m_name, bool m_active);
    bool isName(string m_name);
};

// ... constructors

bool Layer::isName(string m_name) {
return name == m_name;
}

class Stack {
    public:
    list<Layer*> layer;
    list<Layer*>::iterator iter;
};

int main() {
Stack stack;
stack.layer.push_back(new Layer);
stack.layer.push_back(new Layer("snail", true));
stack.layer.push_back(new Layer("squirrel", false));

string search = "snail";
stack.layer.remove_if(bind2nd(mem_fun(&Layer::isName), search));

return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ lambda stl bind list

0
推荐指数
1
解决办法
201
查看次数

深度> 1的成员访问的表达式树

public class Job
{
    public string Name { get; set; }
    public int Salary { get; set; }
}
public class Employee
{
    public string Name { get; set; }
    public Job Job { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我想创建一个成员访问Employee.Name的表达式树,这就是我所做的:

        var param = Expression.Parameter(type, "x");
        var memberAccess = Expression.PropertyOrField(param, memberName);
        return Expression.Lambda<Func<TModel, TMember>>(memberAccess, param);
Run Code Online (Sandbox Code Playgroud)

成员访问Employee.Job.Salary的等价物是什么?

c# linq lambda expression expression-trees

0
推荐指数
1
解决办法
1915
查看次数