0

我有一个具有两个相关属性的可查询对象集合,Retailer并且Price. 我想为每个零售商选择一个对象(价格最低的那个),然后显示按零售商名称的第一个字母分组的对象列表,例如与以字母“A”开头的零售商的最低价格相对应的所有对象在第一组中,下一组为“B”等。

一旦我按零售商对我的 Linq 查询进行分组,我很难弄清楚如何在Select不将查询减少到Price属性列表的情况下对对象进行查询,从而丢失对对象的引用,例如

var query = from o in myCollection.Cast<MyObjectType>()
            group o.GetPrice(someParameter) by o.Retailer into oGroup
            select oGroup.Min() // <-- at this point I've 'lost' the objects 
                                //     and just have a list of prices
                                //     I also need to then group the results 
                                //     by o.Retailer.ToString()[0]

我使用的是 Windows Phone 7,所以 Linq 可能会受到限制。

4

1 回答 1

1

所以你只需要一个包含零售商和最低价格的键值对列表吗?你不能像这样选择一个匿名类型吗?

var query = from o in myCollection.Cast<MyObjectType>()
            group o.GetPrice(someParameter) by o.Retailer into oGroup
            select new { Retailer = oGroup.Key, Min = oGroup.Min() };

或者您也可以创建自定义类或 KeyValuePair。

于 2013-05-06T12:12:10.463 回答