As I already told you that there is no way you can minimize the block, or the switch usage you're going to use them because they're all different conditions. Until you posted that comment - which was helpfull and here would be the block for your application.
Inside the first block, you're having three code blocks which perform the same activity but their loop depends on the number of elements in each three collections. So what you can do is, to just count the total of them and loop (for can be used) and add the code block in it.
int totalLoopCounts = prod.RelatedIndustries.Count +
prod.RelatedKnowHowInActions.Count +
prod.RelatedKnowHowAreas.Count;
for (int i = 0; i < totalLoopsCounts; i++)
{
sb.Append("<li class="\"ui-li-has-thumb" ui-btn="" ui-btn-icon-right="" ui-li="" mode="hold" /> sb.Append("<a data-transition="\"slide\"" href="\"industry_info.aspx?guid="" number="" language.uivalue="">");
}
</a>
Add the above code to the first switch below the
case "prod":
prod = new Belzona.ProductsMySQL.Product(number);
Tip: Why are you adding a new list item without closing the previous one? Fix that one please.