C# 检查列表中的可用性<;T>;
上课C# 检查列表中的可用性<;T>;,c#,linq,list,C#,Linq,List,上课 public class StopSignal { public DateTime time { get; set; } public string symbol { get; set; } public int timeout { get; set; } } 创建: public static List<StopSignal> SignalTimeOut; SignalTimeOut = new List<
public class StopSignal
{
public DateTime time { get; set; }
public string symbol { get; set; }
public int timeout { get; set; }
}
创建:
public static List<StopSignal> SignalTimeOut;
SignalTimeOut = new List<StopSignal>();
如何在SignalTimeOut列表中检查符号的可用性
向列表提出请求,我们有以下项目:25.10.2015 04:30:00,AAPL,60
例如DateTime.Now=25.10.2015 05:25:00
处理这个问题最直接的方法是在列表中找到匹配的元素,并用几个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();
}
你到底需要什么特别的帮助?您可以使用计时器定期执行操作。您可以使用LINQ中的方法或
List
类本身来检查列表的内容并操作这些内容。你到底有什么问题?请阅读至,以获取有关如何以清晰、负责任的方式表达您的问题的建议。我认为这里存在同步问题,因为它看起来像一个将添加和检查新股票的交易系统。可能值得研究使用SynchronizedCollection@PeterDuniho:我的问题是在《代码中》中,如何检查列表SaleTimeUnt中符号的可用性? >最好使用字典、使用符号作为键或使用缓存对象。
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();
}