[英]Select all distinct values of variable in object array using lambda expression
我有一组具有ProductId
属性的对象。 我想使用 lambda 表达式到 select 我的 object 数组products
中ProductId
的所有不同值。
在这里我得到产品
var products = Database.SqlQuery<StructuredProduct>("query").ToArray();
而且我可以按 ProductId 的不同值进行分组,但它仍然返回一个对象数组,而不是 ProductIds 数组
var productIds= products.GroupBy(p => p.ProductId).Select(group => group.First()).ToArray();
关于如何在products
数组上使用 Lambda 表达式来获取ProductIds
的所有不同值的任何想法?
var productIds= products.Select(p => p.ProductId).Distict();
但作为"query"
sql 命令的一部分,直接在数据库上执行此操作可能会更好。
使用 LINQ 方法.Distinct()
var productIds = products.Select(p => p.ProductId).Distinct();
我只用查询理解语法做过 GroupBy 操作。 如果你这样做, group
/ by
/ into
,你分组的东西有一个名为key
的属性。 那将包含您的“productid”
var results = from product in products
group product by ProductId
into individualProducts
select individualProducts;
var productsArray = individualProducts.Select(p => p.Key).ToArray();
items individualProducts
集合每个都有一个Key
和一个具有相同 productid 的事物集合。
如果您直接在数据库外执行此操作,您的所有操作将很好地组合成一个 SQL 语句,当您的代码到达.ToArray()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.