Почему C# мега-язык, а .NET Framework так круто?

Пример сортировки:


SearchRequests.Sort(delegate(SearchRequest sr, SearchRequest sr2)
                        {
                            return SearchWordAmount[sr.SearchText].CompareTo(SearchWordAmount[sr2.SearchText])*-1;
                        });

    

В примере выше, можно сравнивать любое свойство SearchRequest.

Пример прозрачной перекодировки:


System.Text.Encoding en1251 = System.Text.Encoding.GetEncoding(1251);
byte[] encodedSearchQuery = en1251.GetBytes(text); // кодируем

// получаем наш объект описывающий кодировку
Encoding encoding = Page.Site.FirstDomain.DomainGroup.Encodings[Page.Site.DefaultLang];
System.Text.Encoding defaultSiteEncoding = System.Text.Encoding.GetEncoding(encoding.Name); // получаем системную с таким же именем

text = defaultSiteEncoding.GetString(encodedSearchQuery); // перекодируем в нужную кодировку

Спрашивается, зачем мучить свой мозг проблемами перекодировки, если это можно сделать так просто?

Обновление

Выяснилось что не все так просто, а местами даже загадочно, это же но немного подругому:


private string Encode(string source, System.Text.Encoding from, System.Text.Encoding to)
{
    byte[] encodedsource = from.GetBytes(source);
    return to.GetString(encodedsource);
}