我有一个以类别和产品为属性的列表,我希望将属于一个类别的所有产品分离到不同的列表中。
现在我有了这个
Products products = new Products();
products.productList.Add(new Products("Fruit", "Apples"));
products.productList.Add(new Products("Fruit", "Oranges"));
products.productList.Add(new Products("Fruit", "Bananas"));
products.productList.Add(new Products("Fruit", "Grapes"));
products.productList.Add(new Products("Vegetables", "Tomatoes"));
products.productList.Add(new Products("Vegetables", "Lettuce"));
products.productList.Add(new Products("Vegetables", "Onions"));
products.productList.Add(new Products("Dairy", "Milk"));
products.productList.Add(new Products("Dairy", "Yogurth"));
products.productList.Add(new Products("Dairy", "Eggs"));
List<IEnumerable<string>> distinctCats = products.productList.GroupBy(s => s.Category).Select(s => s.Select(v => v.Product)).ToList();但是我似乎无法从distinctCats中获得值。我想要得到一个具有实际值的普通列表productList。
感谢您的帮助和时间
发布于 2012-04-24 17:19:49
如果要按类别将列表划分为子列表,请执行以下操作:
var categoryLists = products.GroupBy(p => p.Category)
.Select(g => g.ToList());现在,categoryLists是一个IEnumerable<List<Product>>。
要对此进行迭代,您可以说:
foreach(var categoryList in categoryLists) {
foreach(var product in categoryList) {
// do something with product
}
}发布于 2012-04-24 17:30:56
我不确定我明白你想要什么,但看起来你需要这样的东西:
var products=new List<Product>{};
var productsInCategories=products.ToLookup(p=>p.Category);现在每个productsInCategoriesi都包含一个"subList“(实际上是IEnumerable)。
https://stackoverflow.com/questions/10295043
复制相似问题