2009-08-17 1 views
0

Вот сценарий:LINQ - Нужна помощь с заявлением/сценарием

Учитывая список выходов каждый из которых связан с целым числом на основе GroupNumber. Для каждого отдельного GroupNumber в списке результатов, начиная с самого младшего GroupNumber (1). Пролистайте этот набор различных групп и выполните метод проверки.

В основном, начиная с наименьшего числа до наивысшего номера группы, сначала проверяйте набор выходов перед проверкой более высокого набора номеров групп.

Спасибо, Matt

+0

Это похоже на Домашнее задание. Вы можете отметить это как таковое. –

+0

Было бы также приятно видеть, что вы пробовали до сих пор, какие ваши входы и выходы, что вы используете для проверки и т. Д. – dahlbyk

ответ

2

Там почти слишком много способов решить эту проблему:

Вот один из методов проверки правильности void.

source 
    .GroupBy(x => x.GroupNumber) 
    .OrderBy(g => g.Key) 
    .ToList() 
    .ForEach(g => Validate(g)); 

Вот один для метода BOOL Validate.

var results = source 
    .GroupBy(x => x.GroupNumber) 
    .OrderBy(g => g.Key) 
    .Select(g => new 
    { 
     GroupNumber = g.Key, 
     Result = Validate(g), 
     Items = g.ToList() 
    }) 
    .ToList(); 
1

Если вы нуждаетесь в них, как группы:

var qry = source.GroupBy(x=>x.GroupNumber).OrderBy(grp => grp.Key); 
foreach(var grp in qry) { 
    Console.WriteLine(grp.Key); 
    foreach(var item in grp) {...} 
} 

Если вам просто нужно их приказал как будто они сгруппированы:

var qry = source.OrderBy(x=>x.GroupNumber);