Я согласен с Джоэлом, что будет много записей и пытаемся найти что-то в списке поля со списком из сотни пунктов будет в конечном итоге как очень плохой пользовательский интерфейс. Кроме этого, единственный способ получить эту информацию - пройти через реестр, как говорит Митч, но это будет не простой код.
Что вы пытаетесь достичь?
Редактировать: @Mitch Wheat, Я знаю, что это было адресовано @Mark Brackett, но я не мог устоять перед проблемой. Использование LINQ, ваш код может быть записан в виде:
public static IList GetFileAssociations()
{
return Registry.ClassesRoot.GetSubKeyNames().Where(key => key.StartsWith(".")).Select(key =>
{
string description = Registry.ClassesRoot.OpenSubKey(key).GetValue("") as string;
if (!String.IsNullOrEmpty(description))
{
return new { key, description };
}
else
{
return null;
}
}).Where(a => a != null).ToList();
}
И это downvoted почему? –
Код прост (и был опубликован сейчас - выглядит примерно 20 строк, и его можно сократить не менее чем на 50% или около того), вы не ответили на вопрос, и ваш пост по существу сводится к «мне , слишком!". Тем не менее, я не уменьшил его, просто предлагая критические замечания. ;) –
@Mark Brackett: если вы думаете, что можете сократить этот код, который я опубликовал на 50%, я предлагаю вам опубликовать ответ, показывающий, как это сделать! –