2012-11-13 2 views
0

Я пытаюсь создать список очередей, отображаемых в категории Queue. Каждой категории очереди присваивается значение Enum как таковое.Список от GroupBy от IEnumerable

public enum QueueCategory 
{ 
    None=0, 
    Critical=1, 
    High=2, 
    Orphaned=3, 
    Missing=4 
} 

И для каждой категории я хочу отобразить эти поля.

public class QueueInformation 
{ 
    public string Name { get; set; } 
    public Decimal PercentOfThreshold { get; set; } 
    public string Host { get; set; } 
    public DateTime OldestArrival { get; set; } 
    public QueueCategory Category { get; set; } 
} 

}

Как бы идти о связывании этих двух страниц, так что QueueInformation отображается QueueCategory?

+3

Как говорит заголовок, используйте 'GroupBy' –

ответ

2
IEnumerable<QueueInformation> infos = ...; 

foreach (var categoryGroup in infos.GroupBy(i => i.Category)) 
{ 
    Console.WriteLine("Current category: {0}", categoryGroup.Key); 

    foreach (var queueInfo in categoryGroup) 
    { 
    Console.WriteLine(queueInfo.Name /*...*/); 
    } 

    Console.WriteLine("=========================="); 
} 
0

Я предполагаю, что вы хотите источник заказанного QueueCategory:

IEnumerable<QueueInformation> list = new BindingList<QueueInformation>(); 
var orderedList = from l in list orderby l.Category select l; 

Надеется, что это помогает

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