【发布时间】:2016-05-20 05:32:55
【问题描述】:
我没有尝试使用join,但是今天我想使用join来解决一个复杂的情况,我有一个数据在下面的示例中列出。我也发表了评论。下一步怎么走?
namespace JoinsApplication
{
class Program
{
static void Main(string[] args)
{
List<Category> categories = new List<Category>()
{
new Category(){Name="Beverages", ID=001,Products =new List<Product>(){new Product{Name="Cola", CategoryID=001},new Product{Name="Tea", CategoryID=001} } },
new Category(){ Name="Condiments", ID=002,Products =new List<Product>(){new Product{Name="Mustard", CategoryID=002},new Product{Name="Pickles", CategoryID=003} } },
new Category(){ Name="Vegetables", ID=003,Products =new List<Product>(){new Product{Name="Carrots", CategoryID=003},new Product{Name="Melons", CategoryID=003} } },
new Category() { Name="Grains", ID=004,Products =new List<Product>(){new Product{Name="Carrots", CategoryID=003},new Product{Name="Melons", CategoryID=003} } },
new Category() { Name="Fruit", ID=005,Products =new List<Product>(){new Product{Name="Peaches", CategoryID=005},new Product{Name="Melons", CategoryID=005} } }
};
//filter data using join, i want to filter data and want a condition on cat.ID and Product.CategoryID, but Products property is not accessible using category alias.
//var u= from cat in categories join product in cat.Products on product.CategoryID equels cat.ID select cat.Name, product.Name;
}
}
#region Join Demonstration data
public class Product
{
public string Name { get; set; }
public int CategoryID { get; set; }
}
public class Category
{
public string Name { get; set; }
public int ID { get; set; }
public List<Product> Products { get; set; }
}
// Specify the first data source.
#endregion
}
【问题讨论】:
-
你能举一个预期输出的例子吗?