Рассмотрим следующие коды:Type.GetCustomAttributes <TAttribute> возвращает пользовательские атрибуты в случайном порядке
[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<SampleAttribute>();
К сожалению, метод «GetCustomAttributes» возвращает атрибуты в случайном порядке.
Например, следующий код будет печатать разные результаты при каждом запуске приложения.
foreach(var att in attributes)
{
Console.WriteLine(att.Name);
}
Вовремя, сначала «A», затем «B» в другой раз наоборот.
Есть ли какие-либо решения для моей проблемы?
Я не собираюсь добавлять столбец, такой как заказ или что-то в этом роде, я бы хотел решить проблему.
Окружающая среда: .NET 4.5.1, Visual Studio 2012 Обновление 3 SDK, C# 5. Оба режима отладки и выпуска.
Или если фактический заказ не имеет значения, вам просто нужен один и тот же заказ каждый раз, независимо от того, что это за заказ, заказать что-то, что уже существует (например, 'Name' здесь) – hvd
Спасибо, правильно, но я не сказал, что это проблема .NET. Есть ли какое-либо решение или настройки или любая другая вещь для решения проблемы с базы –
@YasserMoradi Какая проблема? Что функция, которая не дает никаких гарантий относительно порядка элементов в ее результате, непредсказуема, когда вы смотрите на порядок элементов в ее результате? По моему опыту, в подавляющем большинстве случаев порядок будет неактуальным, и для этого и предназначен API. Это вы рассматриваете это как проблему, которая заботится о порядке, так что вам это удается. Возможно, вы можете расширить свой вопрос, чтобы объяснить, почему для вас важны вопросы порядка, и, возможно, в этом случае будет лучший подход. – hvd