我很感兴趣:C#std::pair在C++中的模拟是什么?我找到了System.Web.UI.Pair课程,但我更喜欢基于模板的课程.
谢谢!
为什么更&&喜欢&和||更喜欢|?
我问过多年来一直在编程的人,他的解释是:
例如,在中if (bool1 && bool2 && bool3) { /*DoSomething*/ },bool1必须是真实的,以便bool2在继续之前测试哪个必须为真bool3,等等.如果我使用单个&而不是测试的顺序,即使所有这些都必须是真的进展到下一行,为什么它至关重要?
注意:我想指出我是幼儿的编程,这不是一个严肃或紧迫的问题.更重要的是理解为什么事情应该以某种方式而不是另一种方式完成.
使用类似的东西:
IList<DateTime> dates =
this.DateRanges
.SelectMany(r => new [] { r.From, r.To })
.Distinct()
.OrderBy(d => d)
.ToList();
Run Code Online (Sandbox Code Playgroud)
我可以获得所有日期,而不会重复任何日期.范围可以完全重叠,部分重叠(上部或下部重叠),触摸或它们可以根本不重叠.
现在我需要将此列表转换为另一个列表,以便每个连续日期对DateTime在对中间形成一个新生成的实例
D1 D2 D3 D4 D5
G1 G2 G3 G4
Run Code Online (Sandbox Code Playgroud)
其中D n是我与列表中不同的日期,而G m日期是我想在其中间生成的日期.
如何将各个日期的有序列表转换为对,以便我得到如下例所示的对?我想用LINQ代替for循环来形成这些,这可以完成同样的事情.由于延迟表达式树执行,使用LINQ可能会产生更高效的代码.
假设这是我的范围的例子:
D1 D2 D3 D4 D5 D6 D11 D12
|--------------| |------| |------| |------|
D7 D8
|--------------------------|
D9 D10
|-----------------------------------------------|
Run Code Online (Sandbox Code Playgroud)
获取不同日期的第一步将导致这些日期:
D1 D7 D2 D3 D4 D5 D6 D10 D11 D12 …Run Code Online (Sandbox Code Playgroud)