使用LINQ从另一个子项列表中选择项目列表?

时间:2017-09-07 12:34:11

标签: c# linq

这是一个新手问题:我需要这两个类来获取特定列表。

 public class Customer
 {
     public string firstname { get; set; }
     public string lastname { get; set; }
     ObservableCollection<Address> { get; set; }
 }

 public class Address
 {
      public string Street { get; set; }
      public string City { get; set; }
 }

我有这个测试数据:

Joe,Doe,123 Main St,纽约市 Jane,Doe,456 Main St,纽约市 唐纳德,Tramp,1600宾夕法尼亚大道,华盛顿特区 Spongebob,Squarepants,124 Conch Street,Bikini Bottom
奥斯卡,The Grouch,Sesame Street,Anywhere City
Milo,Murphy,Unlucky Street,Swamp City

我希望能够获得名字,姓氏,街道和城市的所有细节,这个城市在哪里?#34;纽约市&#34;。

那么如何为此编写LINQ查询?

1 个答案:

答案 0 :(得分:0)

假设您希望所有客户都拥有&#34;纽约市&#34;地址和所有地址(分层),您只需执行此操作:

var query = from c in customers
            where c.addresses.Any(a => a.City == "New York City")
            select c;

如果你确实想要一个扁平化的结果集,可以将表和投影连接到匿名类型:

var query = from c in customers
            from a in c.addresses
            where a.City == "New York City"
            select new
            {
                c.firstname,
                c.lastname,
                a.City,
                a.Street
            };