Microsoft Программирование

Visual Studio съедает свободное место на диске

В последнее время я заметил, что свободное место на моем диске c: постоянно сокращается, хотя  на данном разделе стоит только система и программы требующие установку только в системный раздел.

Используя одну замечательную программку WinDirStat (которую Вы можете абсолютно бесплатно скачать http://windirstat.info/ )  я обнаружил одну интересную вещь:
папка C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebugging\ занимает почти 20 ГБ. В папке лежат логи IntelliTrace за год. Некоторые логи весят по 250 МБ. Другие весили меньше, но их было очень много. Чтобы быть точнее, логи пишутся каждый раз как я нажимаю кнопку Debug в Visual Studio 2010, а учитывая что в Visual Studio я провожу много времени каждый день, то таких журналов появляется очень много.

И так что же я Вам посоветую:
1) Зайти в папку C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebugging\ и удалить все что Вы там видите.
2) Откройте Visual Studio 2010. В панели меню выберите Tools, затем Options, затем IntelliTrace и отключите, сняв галочку!

В будущем можете включить IntelliTrace снова, но только если Вы действительно используете IntelliTrace для Debug. Но как показывает практика, большинство программистов не пользуется данным новшеством Visual Studio 2010.

В заключении хотелось бы сказать, чтоб Вы не думали, что этой статьей я хочу сказать, что IntelliTrace бесполезная вещь, она много кому пригодилась. Однако следует заметить, что всё же большинство программистов не пользуются ею ежедневно.

 

Спасибо сайту http://csharpquestions.com/

.Net Программирование

Dictionary key by value или Как получить ключ(key) по значению(value) в объекте Dictionary C#

Опять-таки недавно обнаружил что в C# не реализован поиск по значению в Dictionary. В моем случае использовался словарь, в котором ключ и значение были типа строка(string). Для решения данной проблемы необходимо написать и использовать следующий метод:

var myDictionary = new Dictionary<string, string>();
 
public string GetKeyByValue(string value)
        {
            foreach (var recordOfDictionary in myDictionary)
            {
                if (recordOfDictionary.Value.Equals(value))
                    return recordOfDictionary.Key;
            }
            return null;
        }

Следует так же добавить, если пары с таким значением не найдется, то вернется null со всеми вытекающими последствиями.