【发布时间】:2017-01-31 19:02:20
【问题描述】:
我有一个类 productInfo,它具有属性 ProductId 和 Locale,并尝试显示具有当前 locale(id) 的产品,并显示具有相同 id 的产品。
这意味着,在按产品 id 分组后,一旦有一个产品的区域设置等于当前区域设置,我们将显示该组(以及它们各自的区域设置)。
以下是伪代码/示例:
public class productInfo
{
public int ProductId {get;set;}
public int LocaleId {get;set;}
}
List<productInfo> listProduct = List<productInfo>();
listProduct.Add(new productInfo{ ProductId = 100, LocaleId = 1 });
listProduct.Add(new productInfo{ ProductId = 100, LocaleId = 2 });
listProduct.Add(new productInfo{ ProductId = 100, LocaleId = 3 });
listProduct.Add(new productInfo{ ProductId = 200, LocaleId = 4 });
listProduct.Add(new productInfo{ ProductId = 300, LocaleId = 1 });
listProduct.Add(new productInfo{ ProductId = 300, LocaleId = 5 });
listProduct.Add(new productInfo{ ProductId = 400, LocaleId = 6 });
如果当前语言环境等于 1,则最终列表应包含:
productInfo { ProductId = 100, LocaleId = 1 }
productInfo { ProductId = 100, LocaleId = 2 }
productInfo { ProductId = 100, LocaleId = 3 }
productInfo { ProductId = 300, LocaleId = 1 }
productInfo { ProductId = 300, LocaleId = 5 }
以下将从列表中删除:
productInfo { ProductId = 200, LocaleId = 4 }
productInfo { ProductId = 400, LocaleId = 6 }
如何使用 Linq 实现这一点?
【问题讨论】: