Предикат для объединения двух коллекций и использования в качестве источника привязки - PullRequest
0 голосов
/ 10 мая 2011

У меня есть две коллекции: ObservableCollection<Lap> и ObservableCollection<Racer>, где Lap содержит данные о заезде на гонках и Racer, как вы понимаете, данные гонщика.Оба объекта знают racerId.

Есть ли способ придумать предикат, чтобы использовать его в качестве Zip -функции для объединения этих двух коллекций?Причина, по которой я хочу это сделать, заключается в том, чтобы связать их DataGrid.

Я видел этот , но не совсем понимаю, как использовать его с предикатом.

Я придумал это:

laps.Zip(participants, (lap, racer) => lap.EnrollmentId == racer.EnrollmentId);

Но как мне сопоставить это с DataGridColumns?

1 Ответ

1 голос
/ 10 мая 2011

Я думаю, что вы ищете Join вместо этого, поскольку вы хотите объединить свойства обоих на основе совпадающего идентификатора.Для работы Zip() обе коллекции должны иметь одинаковое количество записей в одном и том же порядке.

var results = from racer in participants
              join l in laps
              on racer.EnrollmentId equals l.EnrollmentId
              select new 
              {
                //select the properties you are interested in here
                //or just use both:
                Racer = racer, 
                Lap = l
              }
...