現在の状況 :
HashSet<string> MasterSet => {100, 3}
HashSet <string> SubSet => {100, 3} or {100} or {100, 3, 1}
したがって、サブセットの膨大なリストから、MasterSet に基づいて、次のように特定のセットを選択します。
if(MasterSet.SetEquals(subSet) || MasterSet.IsSupersetOf(subSet) || MasterSet.IsSubsetOf(subSet))
true の場合はその subSet で処理し、それ以外の場合は他の利用可能なセットをループします。
重複の問題 : ビジネス ロジックでマスター セットとサブセットに重複を含めたい場合:
MasterSet => {100, 3, 3}
SubSet => {100, 3, 3} or {100, 3} or {100, 3, 3, 1}
次に、HashSet の使用が奪われます。
MasterSet と Subset を変更した場合、サブセットを選択するにはどうすればよいですか?List<string>
編集: 「BigYellowCactus」が提供するソリューションが機能します。ただし、一致する要素の順序の代わりにヘッダーを使用したい場合は、セットをフィルター処理する方が簡単でしょうか?
MasterSet => {100, 3, 4}
MasterHeaders => {"T","F","V"} //Headers element corresponds to the MasterSet element
ケース 1:
SubSet => {3, 100}
SubSetHeaders => {"F", "T"} //Headers element corresponds to the SubSet element
ケース 2:
SubSet => {4, 3}
SubSetHeaders => {"V", "F"} //Headers element corresponds to the SubSet element
MasterHeaders と SubSetHeaders を比較するヘッダーで最初に一致させてから、値で一致させることは可能ですか?