2013-08-08 2 views
0

Я использую свойство Enum, называемое флажками с EF5. Один из этих флагов - это «липкий» флаг. У меня есть список предметов, которые я хочу заказать по дате, но я хочу, чтобы все листы наверху. Есть ли способ сначала получить все липкие, упорядоченные по дате, а затем все остальные, заказанные по дате?Заказ по атрибуту Enum

Моя декларация является перечисление:

[Flags] 
public enum ForumTopicFlags : int 
{ 
    None = 0, 
    Sticky = 1, 
    Spam = 2, 
    Deleted = 4, 
    Locked = 8 
} 
+0

не могли бы вы просто заказать на липучке, а затем по дате и вы сделали? Особенно, если Enum имеет только два значения? –

+0

Sticky - это значение флага для свойства enum. – Echilon

+0

Не является ли этот флаг значением целого числа под ним? Каковы различные значения в базе данных для этого столбца? Или это немного маска? –

ответ

1

Довольно просто, на самом деле:

var result = myList 
    .OrderByDescending(x => (x.Flags & ForumTopicFlags.Sticky) != 0) 
    .ThenBy(x => x.Date); 
+0

Это утверждение требует скобок; '.OrderByDescending (x => (x.Flags & ForumTopicFlags.Sticky)! = 0)', но кроме этого он блестящий. –

+0

@ MikaelÖstberg Спасибо, я забыл. Теперь это исправлено. –

+0

Отлично, спасибо. – Echilon

Смежные вопросы