5

我有以下场景:一个 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 中获取标题

任何帮助将不胜感激

4

5 回答 5

14

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

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

var myList = db.Items.Where(item => idsOnly.Contains(item.ID.Value))
                     .Select(a => a.Title).ToList();
于 2012-09-26T08:07:36.127 回答
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();
于 2012-09-26T08:09:50.180 回答
0
var myList =
    (from item in db.Items
    where idsOnly.Contains(item.ID.Value)
    select item.Title).ToList()
于 2012-09-26T08:09:46.077 回答
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();
于 2012-09-26T08:10:05.697 回答
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()
于 2018-04-24T11:53:21.997 回答