我想我偶然发现了PHP中的一个错误.但是,可以肯定的是,我先问这里.
$k=0;
echo preg_replace_callback('/./', function($groups) use ($k) {
return $k++;
}, 'xxxxxx');
Run Code Online (Sandbox Code Playgroud)
脚本输出:000000
预期产量:012345
我错过了什么吗?
我有一些代码
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)
该程序将变得正常.这是为什么?还有谁能告诉我更常用的功能包装方法?
我有一个问题,这个查询试图从同一个孩子得到一个和一个值
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) 我有以下声明
var evarage = productionreportentry
.Sum(productionReportEntry => productionReportEntry.Cycletime);
Run Code Online (Sandbox Code Playgroud)
我想在Sum lambda中添加一些日志记录.这可能吗?
我无法理解以下内容: 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增加.怎么可能?
假设我有一个包含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表达式.
我不想要任何不必要的代码,但我也希望"安全".经验观察表明,下面的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) 我有一个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.
为什么我使用列表?我决定采用列表而不是向量,因为我的对象没有排序.在最后,我想给面向对象带来一些"瀑布式"代码,主要是因为性能问题(你会在这里看到问题),所以我需要一个概念,我可以快速访问容器层次结构中的对象让他们彼此沟通,这也很快.也许想到模块化合成器.
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) 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的等价物是什么?