日期:2014-05-20  浏览次数:20973 次

linq两个list合并查询
 IList<ts_dynamic> dynamicList = null;
            var allDynamic = (new ts_dynamicService()).GetAllDynamicByCompanyId(companyId);
            if (!string.IsNullOrEmpty(userId) && string.IsNullOrEmpty(groupId))
                dynamicList = allDynamic.Where(x => x.shareType == 4 && x.shareObjectId == userId)
                    .Select(y => new ts_dynamic { hirerId = y.hirerId, contentId = y.contentId }).ToList();//@我的动态
            else if (string.IsNullOrEmpty(userId) && string.IsNullOrEmpty(groupId))
                dynamicList = allDynamic.Select(y => new ts_dynamic { hirerId = y.hirerId, contentId = y.contentId }).ToList();
            else
                dynamicList = allDynamic.Where(x => x.shareType == 1 && x.shareObjectId == groupId)
                      .Select(y => new ts_dynamic { hirerId = y.hirerId, contentId = y.contentId }).ToList();//所在群组动态
            //根据查询到的动态再去查附件
//上面代码已经取到动态表中的hirerId和contentId 
//下面要根据上面的hirerId和contentId 去GetAllAttachByCompanyId取到的附件表中查询匹配的所有附件
            var attachs = GetAllAttachByCompanyId(companyId).Where(x => x.hirerId==dynamicList//此处并没有dynamicList.hireId,但是数据库中是有的);



请问linq怎么写啊?
------解决方案--------------------
List<CourseBookingEDM> listbooking1 = BOSUtility.ConvertToCourseBookingEDM(indvlist);
List<CourseBookingEDM> listbooking2 = BOSUtility.ConvertToCourseBookingEDM(complist);
listbooking1.AddRange(listbooking2);

------解决方案--------------------
 var attachs = from GetAllAttachByCompanyId(companyId) in dynamicList 
                    where x => x.hirerId==dynamicList
                    select new
                    {
                        附件 = GetAllAttachByCompanyId(companyId).附件
                                           };
foreach (var item in attachs)
        {
            Response.Write(item + "<br/>");
        }