使用Linq,从列表中获取另一个List <int> </int>中的所有项

时间:2012-09-26 08:05:22

标签: c# linq entity-framework

我有以下情况: int列表:List<int> idsOnly = new List<int>(); 和另一个对象列表,它应该使所有项目的id与列表idsOnly

匹配
var myList = db.Items.Where(item => idsOnly.Contains(item.ID.Value))
                     .Select(a => new { a.Title })
                     .ToList();

我只需要从myList中获取标题

任何帮助将不胜感激

5 个答案:

答案 0 :(得分:12)

您的代码有效,但会创建匿名对象列表,而不是字符串类型

如果您只想获得标题,则只需使用(a => new { a.Title },而不是使用a => a.Title

var myList = db.Items.Where(item => idsOnly.Contains(item.ID.Value))
                     .Select(a => a.Title).ToList();

答案 1 :(得分:1)

您可以使用Join

var titlesInIdList = from item in db.Items
                     join id in idsOnly
                     on item.ID.Value equals id
                     select item.Title;
var list = titlesInIdList.ToList();

答案 2 :(得分:0)

var myList =
    (from item in db.Items
    where idsOnly.Contains(item.ID.Value)
    select item.Title).ToList()

答案 3 :(得分:0)

您可以尝试(如果问题转换:转换为int您的Id,如果不是int类型)

var myList = db.Items.Where(item => (idsOnly.Contains(Convert.ToInt32(item.ID.Value)))).Select(a => a.Title ).ToList();

没有转换

var myList = db.Items.Where(item => (idsOnly.Contains(item.ID.Value))).Select(a => a.Title ).ToList();

答案 4 :(得分:0)

var Result = (from item in db.Items
                 join id in idsOnly
                 on item.ID.Value equals id
                 select new {item.Title}).ToList(); //Here U can return ToArray or ToList()
相关问题