Skip to content

Instantly share code, notes, and snippets.

@gshutler
Created December 9, 2010 13:15
Show Gist options
  • Select an option

  • Save gshutler/734701 to your computer and use it in GitHub Desktop.

Select an option

Save gshutler/734701 to your computer and use it in GitHub Desktop.
public interface IHeader
{
string Value { get; }
IEnumerable<string> Values { get; }
}
public sealed class Header : IHeader
{
readonly IEnumerable<string> values;
readonly string value;
public Header(IEnumerable<string> values)
{
this.values = values.ToArray();
value = this.values.FirstOrDefault() ?? string.Empty;
}
public string Value
{
get { return value; }
}
public IEnumerable<string> Values
{
get { return values; }
}
}
@gshutler
Copy link
Copy Markdown
Author

gshutler commented Dec 9, 2010

It could be that trying to wedge my idea into a generic container is a bad idea. I'll write some code and try some ideas out. It could be I go back to IDictionary<string, IEnumerable<string>> or it could be I end up at a specialized IHeaderCollection.

I'm against being reliant on extension methods for completely standard interactions. They aren't discoverable if you don't have the right namespace imported and force you to use methods rather than properties or indexes.

Thanks for your feedback by the way, it's much appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment