Как использовать лямбда-выражение для возврата поля из двух коллекций - PullRequest
1 голос
/ 27 февраля 2012

В рамках проекта ac # у меня есть две коллекции, и я пытаюсь запросить их, используя лямбду, чтобы вернуть значение

Псевдокод

Collection1

alertID
SavedItemID
SavedName

Collection2

SavedItemID
alertID
AlertType
DateCreated

var name = Collection2.where(c => c.savedItemID == Collection1.SavedItemID) return SavedName Property value from collection 1.

В основном в начальномзапрос Я попал в collection2. Я бы хотел перейти из collection2 в collection 1, чтобы вернуть поле Saved Name.Я никогда не пытался перемещаться вверх по дереву, чтобы получить другой объект.Кто-нибудь может дать несколько советов о том, как построить это выражение?

Спасибо

1 Ответ

4 голосов
/ 27 февраля 2012

Вам нужно будет использовать Присоединиться , а затем проект анонимный тип , состоящий из полей, которые вас интересуют.

var result = from c2 in Collection2
    join c1 in Collection1 on c2.SavedItemID equals c1.SavedItemID
    select new { c2.SavedItemID, c1.SavedName };

Это эквивалентно

var result = Collection2.Join(
    Collection1, 
    c2 => c2.SavedItemId, 
    c1 => c1.SavedItemId, 
        (c2, c1) => new { c2.SavedItemID, c1.SavedName }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...