title: Type.GetCustomAttributes<TAttribute> returns custom attributes in random order
body: <p>Consider following codes:</p>
  
  <pre><code>[AttributeUsage(AttributeTargets.Class)]
  public sealed class SampleAttribute : Attribute
  {
       public String Name {get;set};
       public SampleAttribute(String testName)
       {
             Name = testName;
       }
  }
  
  [SampleAttribute("A")]
  [SampleAttribute("B")]
  public class Test
  {
  
  }
  
  var attributes = typeof(Test).GetCustomAttributes&lt;SampleAttribute&gt;();
  </code></pre>
  
  <p>Unfortunately, the method <strong><em>"GetCustomAttributes"</em></strong> returns attributes in random order.</p>
  
  <p>For example following code will print different results every time I run application.</p>
  
  <pre><code>foreach(var att in attributes)
  {
      Console.WriteLine(att.Name);
  }
  </code></pre>
  
  <p>On time, first "A" then "B" another time vice versa.</p>
  
  <p>Is there any solution for my problem ?</p>
  
  <p>I'm not going to add a column such as order or anything like that, I'd like to solve the problem.</p>
  
  <p>Environment: .NET 4.5.1 , Visual Studio 2012 Update 3 SDK , C# 5. Both Debug and Release modes.</p>