林克加入团体
本文关键字:林克 | 更新日期: 2023-09-27 18:28:10
Hej,我有一个linq表达式的问题。我想和某一组的人一起表演join。这正是我所需要的:
var f = new IEnumerable<SomeClass> { ... };
var rows = new IEnumerable<SomeOtherClass> { ... };
var makedGroups = rows.GroupBy(row => row.SomeId);
var groupsJoined = (from row in makedGroups
join allocQuant in f on row.Key.Value equals allocQuant.SomeId into gj
select gr => new { Count = gr.Count(), Group = gj });
错误为:错误202联接子句中某个表达式的类型不正确。对"Join"的调用中的类型推断失败。
如何正确地写出这个表达式?
我已经包含了一些示例代码,它正在做你想要做的事情。它根据一些示例代码改编,使用两个类,而不是静态的字符串数组。
结果将产生一个IEnumerable With a ProductCategory Field,Products Field包含基于类别的产品分组,最后一列是分组中的计数。
根据你的要求,这就是我认为你想要的。
class Product
{
public Product(string cat, string name)
{
Category = cat;
ProductName = name;
}
public string Category { get; set;}
public string ProductName { get;set;}
}
class ProductClass
{
public ProductClass (string type)
{
ProductType = type;
}
public string ProductType { get;set;}
}
ProductClass[] productClasses = new ProductClass[]{
new ProductClass("Beverages"),
new ProductClass("Condiments"),
new ProductClass("Vegetables"),
new ProductClass("Dairy Products"),
new ProductClass("Seafood") };
List<Product> products = new List<Product>();
products.Add(new Product("Seafood", "crab sticks"));
products.Add(new Product("Seafood", "lobster"));
products.Add(new Product("Vegetables", "cucumber"));
products.Add(new Product("Seafood", "oysters"));
products.Add(new Product("Condiments", "pepper"));
products.Add(new Product("Condiments", "salt"));
var query =
from pc in productClasses
join product in products on pc.ProductType equals product.Category into gj
select new { ProductCategory= pc.ProductType, Products = gj, Count = gj.Count() };