单行“FromValue - ToValue”(不是类,不是字典/列表/数组)。如何?

时间:2011-11-10 12:51:10

标签: c#

您多久进入一个过时的情景。
或者也许是一个fromValue-toValue。

你怎么做那些时间?
我常用其中一种,

T = ObjectType(DateTime,int,string ..)

Dictionary<T,T>(与.Single()一起使用)

T fromDate;
T toDate;

T[] comparison;

由方法直接使用或返回。

非常很少我会创建一个完整的对象

public struct T 
{
   T fromDate { get; set;}
   T toDate { get; set;}
}

public Method T(params)
{
   ..some operations..
   return T { fromDate = someBegin, toDate = someEnd };
}

每次,我都想要一个简单明了的KeyValuePair<T,T> test;。使用KeyValuePair给我的问题是,如果以这种方式使用会产生误导?如果我在某些代码中看到KeyValuePair,我会查看变量,如“index 10,category books”。

你的建议是什么?

2 个答案:

答案 0 :(得分:3)

如果你有.NET Framework 4,我建议改为使用Tuple<T, T>,因为它并不意味着像KeyValuePair这样的键值关系。

答案 1 :(得分:1)

您可以创建一个通用的Range类:

public class MyRange<T> where T: IComparable
{
   public T From {get; private set;}
   public T Until {get; private set;}

   public MyRange(T from, T until)
   {
      From = from;
      Until = until;
   }

   public bool Contains(T value)
   {
      return value.CompareTo(From) >= 0 && value.CompareTo(Until) <= 0;
   }
}