有一个名为cardReaderHistory的列表.它包含有序时间的一些时间记录,如下所示,
InTime1
OutTime1
InTime2
OutTime2
InTime3
OutTime3
InTime4
OutTime4 .....此外..
我需要的是计算工作时间(OutTime1 - Intime1)+(OutTime1 - Intime1).....
double我怎么能在C#中做到这一点... ????
double hr = ((outTime1 - inTime1)+(OutTime2 - Intime2)+...);
Run Code Online (Sandbox Code Playgroud)
谢谢..可怜的初学者
您可以根据索引过滤输入序列,然后压缩两个序列:
var inTimes = source.Where((x, index) => index % 2 == 0);
var outTimes = source.Where((x, index) => index % 2 == 1);
var result = inTimes.Zip(outTimes, (inTime, outTime) => outTime - inTime).Sum();
Run Code Online (Sandbox Code Playgroud)
如果您不需要中间值,您也可以这样做:
var result = source.Select((x, index) => (index % 2 == 0) ? -x : x).Sum();
Run Code Online (Sandbox Code Playgroud)