检查List <t>中的可用性

时间:2015-10-26 01:46:56

标签: c# linq list

上课

InsuredID   | EmployeeNumber    | MemberTypeID  | LinkedMemberID
----------------------------------------------------------------
1001012     | 39018             | 102           | 1001061 
1001061     | 39018             | 100           | 0
1001147     | 39019             | 102           | 1001196 
1001196     | 39019             | 100           | 0

创建:

public class StopSignal
    {
        public DateTime time { get; set; }
        public string symbol { get; set; }
        public int timeout { get; set; }
    }

添加一些信息: DateTime.Now例如= 25.10.2015 04:30:00

public static List<StopSignal> SignalTimeOut;
SignalTimeOut = new List<StopSignal>();

如何检查List SignalTimeOut中符号的可用性?

向列表提出请求,我们有项目:25.10.2015 04:30:00,AAPL,60

例如DateTime.Now = 25.10.2015 05:25:00

  1. 如果 25.10.2015 04:30:00 25.10.2015之间存在差异 05:25:00 &lt; 60 分钟,然后有一些行动
  2. 如果 25.10.2015 04:30:00 25.10.2015之间存在差异 05:25:00 &gt; 60 分钟然后我们删除此项
  3. 如果项目不在列表中,则为另一个操作

1 个答案:

答案 0 :(得分:2)

处理此问题的最直接方法是在列表中找到匹配元素并使用一些if语句处理它。请注意,此代码假定最多只能有一个匹配项。如果不是这种情况,或者您需要检查错误,请将.SingleOrDefault()替换为例如。 .ToList()并检查该列表中的元素数量

var match = SignalTimeOut.Where(s => s.symbol == desiredSymbol).SingleOrDefault();

if (match == null)
{
    Action3();
}
else
{
    var age = new TimeSpan(DateTime.Now.Ticks - match.time.Ticks);
    if (age.TotalMinutes() > 60)
        Action2();
    else
        Action1();
}