小编pit*_*smx的帖子

c#polymorphism +泛型设计 - 需要建议

我的层次结构TrendProviders用于提供来自不同来源的一系列数据点(趋势).

我已经开始使用通用接口:

public interface ITrendProvider<T> where T: TrendResult
{
    IEnumerable<T> GetTrends(); 
}
Run Code Online (Sandbox Code Playgroud)

TrendResult 是一个结果类,包含获得的趋势数据和操作状态代码:

public class TrendResult
{
    public TrendResult()
    {
        Points = new Dictionary<DateTimeOffset, decimal>();
    }

    public TrendResultCode Code { get; set; }
    public string Name { get; set; }
    public string Identifier { get; set; }
    public Dictionary<DateTimeOffset, decimal> Points { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

TrendResultCode 如下:

public enum TrendResultCode
{
    OK,
    DataParseError,
    NoData,
    UnknownError
}
Run Code Online (Sandbox Code Playgroud)

还有两种类型(到目前为止)更详细的接口:

  • IFileTrendProvider - 用于从任何文件中获取趋势.

  • IServerTrendProvider - 用于从远程服务器获取趋势,例如使用FTP.

IFileTrendProvider 是这样的:

public …
Run Code Online (Sandbox Code Playgroud)

c# generics polymorphism

6
推荐指数
1
解决办法
100
查看次数

c#linq过滤字典<DateTime,int>由预定义的最小时差

我需要过滤数据,Dictionary<DateTime, int>以便只获得后续差异DateTime's为1分钟或更长时间的元素.

例如,在字典中我可以拥有这样的数据对:

var pairs = new Dictionary<DateTime, int>()
{
    { new DateTime(2010, 01, 20, 19, 05, 00), 10 },
    { new DateTime(2010, 01, 20, 19, 05, 19), 11 },
    { new DateTime(2010, 01, 20, 19, 05, 49), 12 },
    { new DateTime(2010, 01, 20, 19, 06, 05), 13 },
    { new DateTime(2010, 01, 20, 19, 07, 05), 14 },
    { new DateTime(2010, 01, 20, 19, 07, 55), 15 },
};
Run Code Online (Sandbox Code Playgroud)

我希望过滤的结果是:

<2010-01-20 19:05:00, 10>
<2010-01-20 …
Run Code Online (Sandbox Code Playgroud)

c# linq dictionary

1
推荐指数
1
解决办法
310
查看次数

标签 统计

c# ×2

dictionary ×1

generics ×1

linq ×1

polymorphism ×1