Skip to content

Instantly share code, notes, and snippets.

View erikdietrich's full-sized avatar

Erik Dietrich erikdietrich

View GitHub Profile
static void Main(string[] args)
{
var factory = new MailPieceFactory();
var zipCodes = new List<int>();
for (int index = 0; index < 23458333; index++)
{
zipCodes.Add(index % 100000);
var randomPiece = factory.GetPiece(GetRandomKey());
string pieceStatistics = randomPiece.GetStatistics(zipCodes[index]);
public class MailPieceFactory
{
private readonly Dictionary<char, MailPiece> _mailPieces = new Dictionary<char,MailPiece>();
public MailPiece GetPiece(char key)
{
if (!_mailPieces.ContainsKey(key))
_mailPieces[key] = BuildPiece(key);
return _mailPieces[key];
public abstract class MailPiece
{
public abstract decimal Postage { get; set; }
public abstract decimal Width { get; set; }
public abstract decimal Height { get; set; }
public abstract decimal Thickness { get; set; }
public string GetStatistics(int zipCode)
{
return string.Format("Zip code is {0}, postage is {1} and height is {2}",
static void Main(string[] args)
{
var zipCodes = new List<int>();
var letter = new Letter();
for (int index = 0; index < 23458333; index++)
{
zipCodes.Add(index % 100000);
string pieceStatistics = letter.GetStatistics(zipCodes[index]);
Console.Write(pieceStatistics);
}
static void Main(string[] args)
{
var zipCodes = new List<int>();
var letter = new Letter();
for (int index = 0; index < 23458333; index++)
{
zipCodes.Add(index % 100000);
Console.Write(string.Format("Zip code is {0}, postage is {1} and height is {2}",
zipCodes[index], letter.Postage, letter.Height));
}
static void Main(string[] args)
{
var pieces = new List<MailPiece>();
for (long index = 0; index < 563000000; index++)
{
pieces.Add(new Letter() { DestinationZip = (int)(index % 100000) });
}
Console.ReadLine();
}
static void Main(string[] args)
{
var pieces = new List<MailPiece>();
for (long index = 0; index < 23458333; index++)
{
pieces.Add(new Letter() { DestinationZip = (int)(index % 100000) });
}
Console.ReadLine();
}
public class Postcard : MailPiece
{
public override decimal Postage { get; set; }
public override decimal Width { get; set; }
public override decimal Height { get; set; }
public override decimal Thickness { get; set; }
public Postcard()
{
Postage = 0.33M;
public abstract class MailPiece
{
public abstract decimal Postage { get; set; }
public abstract decimal Width { get; set; }
public abstract decimal Height { get; set; }
public abstract decimal Thickness { get; set; }
public int DestinationZip { get; set; }
}
public class Letter : MailPiece
{
public override decimal Postage { get; set; }
public override decimal Width { get; set; }
public override decimal Height { get; set; }
public override decimal Thickness { get; set; }
public Letter()
{
Postage = 0.46M;