【发布时间】:2012-02-20 11:41:49
【问题描述】:
我正在尝试将一些 groupby/crosstabbing 逻辑应用于用户定义对象的 IEnumerable 列表,并且想知道是否有人可以帮助我。我被一个现有的(相当烦人的)对象模型困住了,但不管怎样……
请考虑以下类,我将仅将其浓缩为相关属性,以便您了解 jist...
public class Holding
{
private void Institution;
private string Designation;
private Owner Owner;
private Event Event;
private Shares Shares;
}
我想将其转换为满足以下条件的列表...
- 对象按机构分组。
- 该机构的父列表包含一个新对象列表,该对象具有唯一的名称和所有者组合。
- 现在,对于每一个指定和所有者的组合,我们都会获得另一个独特事件的子列表。
所以它基本上是 3 个深度列表。
我不确定这是否可以通过 IEnumerable 列表实现,到目前为止,我已经玩弄了很多 GroupBy 扩展方法,但无济于事。我最想这样做,但我正在使用 linq-to-sql 来获取如下的初始持股清单,这可能是开展业务的更好场所......
public static List<Holding> GetHoldingsByEvents(
int eventId1,
int eventId2)
{
DataClassesDataContext db = new DataClassesDataContext();
var q = from h in db.Holdings
where
h.EventId == eventId1 ||
h.EventId == eventId2
select h;
return q.Distinct().ToList();
}
任何帮助/指导将不胜感激...
提前致谢。
【问题讨论】:
标签: c# asp.net linq-to-sql group-by ienumerable