我有一个Class:
public class Company
{
public int id { get; set; }
public string title { get; set; }
public string address { get; set; }
public string city { get; set; }
public string zip { get; set; }
public List<string> phones { get; set; }
public List<string> categories { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个Generic List包含Class:
public List<Company> Companies = new List<Company>();
我想做两件事:
我想我成功了第一件事:
Companies.SelectMany(c => c.categories).Distinct()
如果您认为有任何问题,请告诉我.
我尝试了第二步:
Companies.SelectMany(c => c.categories).Where(c=>c == Category).Count()
但我不确定这是否正确.
正确
您需要将列表展平为(公司,类别)对,然后按类别分组:
from company in Companies
from category in company.Categories
group company by category into g
select new { Category = g.Key, Count = g.Count() }
Run Code Online (Sandbox Code Playgroud)
编辑:如果你想知道一个给定类别中有多少公司,你可以写
Companies.Count(c => c.Categories.Contains(categoryName))
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
8079 次 |
| 最近记录: |