Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6938833
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T12:32:33+00:00 2026-05-27T12:32:33+00:00

Assume i have an enumeration : namespace System.Windows.Forms { public enum DialogResult { None,

  • 0

Assume i have an enumeration:

namespace System.Windows.Forms
{
   public enum DialogResult { None, OK, Cancel, Abort, Retry, Ignore, Yes, No }
}

i want to declare a “set” made up of these enumerated types

ShowForm(Form frm, DialogResults allowedResults)

In other languages you would declare:

public DialogResults = set of DialogResult;

And then i can use

ShowForm(frm, DialogResult.OK | DialogResult.Retry);

C# has the notion of Flags, pseudocode:

[Flags]
public enum DialogResults { DialogResult.None, DialogResult.OK, DialogResult.Cancel, DialogResult.Abort, DialogResult.Retry, DialogResult.Ignore, DialogResult.Yes, DialogResult.No }

problem with that it’s not real code – Flags does not instruct the compiler to create a set of flags.

  • in one case the type should only allow one value (DialogResult)
  • in another case the type should allow multiple values of above (DialogResults)

How can i have a “set” of enumerated types?

Note: i assume it’s not possible in C#. If that’s the answer: it’s okay to say so – the question is answered.

Note: Just because i believe C# language doesn’t have the feature doesn’t mean it doesn’t have the feature – i may just not have found it yet.


Update: another example:

Assume i have an enumeration:

public enum PatronTier 
{ 
    Gold = 1,      
    Platinum = 2,  
    Diamond = 3,   
    SevenStar = 7  //Yes, seven
}

i want to declare a “set” made up of these enumerated types

public Tournament
{
   public PatronTiers EligibleTiers { get; set; }
}

In other languages you would declare:

public PatronTiers = set of PatronTier;

And then i can use:

tournament.EligibleTiers = PatronTier.Gold | PatronTier.SevenStar;

C# has the notion of Flags, pseudocode:

[Flags]
public enum PatronTiers { PatronTier.Gold, PatronTier.Platinum, PatronTier.Diamond, PatronTier.SevenStar }

problem with that it’s not real code.

How can i have a “set” of enumerated types?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T12:32:34+00:00Added an answer on May 27, 2026 at 12:32 pm

    Seems like you want an array of things. There are array types in C#, but nothing that is directly equivalent to your examples in terms of compiler support, closest is perhaps DialogResults[], an array of DialogResults.

    Try supplying a HashSet of the items you allow. HashSet<T> implements ISet<T>, and it’s usually best to work against interfaces than concrete types, especially for method signatures:

    ShowForm(Form frm, ISet<DialogResults> allowedResults);
    

    Then you can use Contains to test for items:

    if (allowedResults.Contains(DialogResults.OK))
    {
    }
    

    Somewhat pointless alternative: you could always implement your own Set<Enum> type using Jon Skeet’s Unconstrained Melody to give you a nicer syntax from the perspective of the caller and get a little closer to your examples.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Assume I have a form class SampleClass(forms.Form): name = forms.CharField(max_length=30) age = forms.IntegerField() django_hacker
Assume we have a method like this: public IEnumerable<T> FirstMethod() { var entities =
Assume you have a class that defines virtual methods with the access specifier public.
Assume I have a class a: class a { public: void load_data( ); private:
Assume I have code like this: var svc = new Namespace.SvcClient(); var request =
Assume I have a class like this: public class Foo { public Bar RequiredProperty
Assume i have a class: public class Products { public string ID { get;
Assume I have a class foo, and wish to use a std::map to store
Assume I have created a compiled re: x = re.compile('^\d+$') Is there a way
Assume I have a function template like this: template<class T> inline void doStuff(T* arr)

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.