1

C# で正規表現一致のグループが必要な場合は、MatchCollection. グループのグループとGroupCollection.

ただし、(私の知る限り)そうであっても、4.5であっても、それらは両方とも非ジェネリックです。

  • IEnumerable<T>から継承しているため、何も壊さないでIEnumerableください。
  • LINQ で使いやすくします。たとえば、myMatchCollection.Cast<Match>().SomeLINQMethod()単に行う代わりにmyMatchCollection.SomeLINQMethod()
  • 最初からキャストする必要がないので、より効率的にします。
  • チームの負担が大きすぎることはありません。内部実装を から || に変更するだけArrayListですList<MatchGroup>(地獄、Match[]||のようなものでもGroup[]) メソッドを追加しMatch GetEnumeratorます。これには 5 分もかかりません。

ただし、ここでの私の質問は次のとおりです。何か不足していますか? それらをジェネリックに変更できず、LINQ で使用する方がはるかに優れている別の理由はありますか?

4

2 に答える 2

0
  1. 既存の定義を変更すると、重大な変更になります。
  2. すべての新機能には機会費用が発生し、他の高価値機能の実装を妨げる可能性があります。
  3. 知覚される利点は (非常に!?) マイナーです。
  4. 既存の実装に対して独自の汎用ラッパーを作成するのは簡単です。

これらの議論のいずれかに同意できない場合は、Microsoft が利益と費用の決定を誤って計算したというビジネス ケースを Microsoft に提示してください。彼らは耳を傾け、それを実装することさえあるかもしれません。あなたは何を失う必要がありますか?

于 2013-05-04T22:21:17.137 に答える