Linq подзапрос с в запросе - PullRequest
       7

Linq подзапрос с в запросе

2 голосов
/ 19 января 2012

У меня есть два списка, из которых я должен получить два значения (MyCaption и MyValue).

List<UserInfoModel> userInfo = new List<UserInfoModel>();

List<myuser_field> myUserFields = GetMyUserFields();
var otherUserFields = otherUserService.GetOtherUserFields();

userInfo = (from otherUserField in otherUserFields
               where otherUserField.Chosen == true 
                    select new UserInfoModel {
                        MyCaption = otherUserField.FieldAlias,
                        MyValue =
                    }).ToList();

MyCaption Я напрямую получаю из одного списка. Теперь, чтобы получить MyValue мне нужно найти на основе otherUserField.FieldName. то есть я должен найти myUserFields.FieldName, который равен otherUserField.FieldName, и назначить его для MyValue.

Может ли это быть сделано в одном запросе, как указано выше? Пожалуйста, предложите

Ответы [ 2 ]

3 голосов
/ 19 января 2012
userInfo = (from myUserField in myUserFields
            join otherUserField in otherUserFields
            on myUserField.FieldName == otherUserField.FieldName
            where otherUserField.Chosen == true 
            select new UserInfoModel {
                MyCaption = otherUserField.FieldAlias,
                MyValue = myUserField.FieldName
            }).ToList();
0 голосов
/ 19 января 2012

Из вашего вопроса не очень понятно, что вы хотите назначить для MyValue.

Далее будет назначен объект myuser_field, у которого есть FieldName, которое соответствует FieldName перечисляемого в данный момент myuser_object (otherUserField.FieldName):

List<UserInfoModel> userInfo = new List<UserInfoModel>(); 

List<myuser_field> myUserFields = GetMyUserFields(); 
var otherUserFields = otherUserService.GetOtherUserFields(); 

userInfo = (from otherUserField in otherUserFields 
               where otherUserField.Chosen == true  
                    select new UserInfoModel { 
                        MyCaption = otherUserField.FieldAlias,
                        MyValue = myUserFields.Single(uf => uf.FieldName == otherUserField.FieldName)
                    }).ToList(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...