1

xml を使用して、"gte"、"gt"、"lte"、"lt"、または "eq" の任意の組み合わせを使用して、ユーザーが柔軟な方法で範囲を指定できるシナリオを想像してみてください。

下記は用例です

<rangeElement gte="0" lt="5" ... />
<rangeElement gt="3" lte="7" ... />
<rangeElement eq="5" ... />
<rangeElement gt="10.5" ... />

ここで必要なのは、これらを処理できる Range と RangeCollection の 2 つのクラスです。

Range クラスは次のようになります。

public class Range
{
   public LowerBoundInclusive { get; set; }
   public LowerBoundExclusive { get; set; }
   public UpperBoundInclusive { get; set; }
   public UpperBoundExclusive { get; set; }
   public object Data { get; set; }

   public Range(XElement xmlElement)
   {
      ....
   }
}

RangeCollection クラスには、その範囲を並べ替え、オーバーラップを検出し、値を指定して対応する範囲を返す基本的な方法が必要です。

私はこれで遊んだことがありますが、物事はすぐに非常に複雑になります。他の誰かがこれの実装を見たことがありますか、またはそれを試してみたいですか?

ところで。範囲に取り組む同様のスレッドがあることは知っていますが、「未満または等しい」と「未満」の違いを適切に処理していません。

4

1 に答える 1

2

必要なのはinterval treeです。C#で実装を見つけて、ニーズに合わせて変更することは難しくありません。「<=」または「<」の関係に問題はありません。

于 2009-01-22T01:26:28.197 に答える