Don't:
[csharp]
var description = new StringBuilder("");
foreach (var item in productItems.Where(x => x.ItemType == type))
{
description.Append(item.Description + ", ");
}
return description.Remove(description.Length - 2, 2).ToString();
[/csharp]
Do:
[csharp]
return string.Join(", ", productItems.Where(x => x.ItemType == type).Select(x => x.Description).ToArray());
[/csharp]
because the first example fails when your collection has no elements.
Best merge tool for visual studio and TFS
Sherlock Holmes … the Death and Life
A one man show by Roger llewellyn is possibly the most impressive one man show you'll see anytime soon. Half a dozen characters interact and by the interval you face the puzzle of how exactly the relationship between Arthur Conan Doyle and his creations can work out. And whereas this kind of frame-breaking has been with us for a long time, this is the first time I've seen it done convincingly.
.Net Money class
Every now and then you need a money class. Here's one:
http://www.codeproject.com/KB/recipes/MoneyTypeForCLR.aspx.