c# - 使用LINQ获取具有属性=另一个对象属性的对象

标签 c# linq

具有以下伪代码:

    class Foo
    {
        public int id { get; set; }
        public string info { get; set; }
    }

    class Bar
    {
        public int id { get; set; }
        public int FooId { get; set; }
        public string moreInfo { get; set; }
    }

    IList<Foo> foos = new List<Foo>();
    foos.Add(new Foo() { id = 1, info = "first!" });
    foos.Add(new Foo() { id = 2, info = "second!" });
    foos.Add(new Foo() { id = 3, info = "third!" });


    IList<Bar> bars = new List<Bar>();
    bars.Add(new Bar() { id = 1, FooId = 1, moreInfo = "Something" });
    bars.Add(new Bar() { id = 2, FooId = 1, moreInfo = "else" });
    bars.Add(new Bar() { id = 3, FooId = 2, moreInfo = "here" });
    bars.Add(new Bar() { id = 4, FooId = 6, moreInfo = "and" });
    bars.Add(new Bar() { id = 5, FooId = 7, moreInfo = "here as well" });

    var returnValue = select bar from bars
                        where bar.FooId IN foos.Id


我要实现的是一个列表(我的returnValue),其中包含ID为1、2和3的小节,因为它们的FooId在foos列表中。我该怎么办?

最佳答案

var returnValue = bars.Where(b => foos.Select(f => f.Id).Contains(b.FooId);


要么

var returnValue = from b in bars
                  join f in foos on b.FooId equals f.Id
                  select b;

关于c# - 使用LINQ获取具有属性=另一个对象属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260236/

相关文章:

c# - WCF 枚举按值代理支持动态枚举

c# - 将 linq 查询转换为 ObservableCollection

c# - 比较当前月份以下的日期 c#

c# - 比较日期我为空的日期

c# - 正则表达式可以匹配交错匹配吗?

c# - 是否可以使用 LINQ 从对象数组中提取一个属性的值并创建一个新数组?

c# - ASP.Net MVC 2 : Using a viewmodel destroys my model binding

c# - 创建一个唯一的字典并添加自动增加的整数值

c# - Linq - 不在逗号分隔列表中的地方

c# - Entity Framework -动态sql