我正在使用VisualStudio 2013 Premium C#和MSSQLServer
我想通过EndDate订购
然后(带循环)我想知道我的表中下一列的StartDate是否低于当前列的EndDate
StartDate和EndDate是Seconds
实施例
StartDate
1
2
3
1
6
7
7
EndDate
3
3
4
5
7
8
10
这里程序计算到EndDate 5 因为6 <= 5 StartDate&lt; = EndDate。
如果我计算我的结果:
4
3
然后我想找出列表的最大值 在这种情况下4
背景:我想知道在哪一秒我得到最大呼叫数。
任何人都可以帮我解决问题吗?
答案 0 :(得分:0)
我没有得到你的解释,但回答你的问题
我想知道在哪一秒我得到最大呼叫次数。
void Main()
{
var startDate = new [] { 1, 2, 3, 1, 6, 7, 7 };
var endDate = new [] { 3, 3, 4, 5, 7, 8, 10 };
var maxCallsCount = 0;
var secondAtMaxCallsCount = 0;
foreach (var second in Enumerable.Range(startDate.Min(),
endDate.Max() - startDate.Min() + 1))
{
var callsCount = 0;
for (var i = 0; i < startDate.Length; ++i)
{
if (startDate[i] <= second && second <= endDate[i])
{
++callsCount;
}
}
if (callsCount > maxCallsCount)
{
maxCallsCount = callsCount;
secondAtMaxCallsCount = second;
}
}
Console.WriteLine("Max calls count is " + maxCallsCount +
" at " + secondAtMaxCallsCount + " second");
}
答案 1 :(得分:0)
我想我用List<int?>
解决了参数的问题
但现在我不确定如何实现Range和Loop。
以下是对的吗?
foreach (var second in Enumerable.Range((int)beginningDate.FirstOrDefault(),
(int)endDate.Last() - (int)beginningDate.FirstOrDefault() +1))
{
var callsCount = 0;
for (var i = 0; i < beginningDate.Last(); ++i)
{
if (beginningDate[i] <= second && second <= endDate[i])
{
++callsCount;
}
}
if (callsCount > maxCallsCount)
{
maxCallsCount = callsCount;
}
}
我总是得到一个System.ArgumentOutOfRangeException-Exception。 指数超出范围。