C# 旋转IEnumerable列表
我正在尝试对用户定义对象的IEnumerable列表应用一点groupby/Crosstabing逻辑,我想知道是否有人能帮我解决这个问题。我被一个现有的(相当烦人的)对象模型所困扰,但不管怎样,这里是 考虑下面的类,我将把它压缩成相关的属性,这样你就可以得到jistC# 旋转IEnumerable列表,c#,asp.net,linq-to-sql,group-by,ienumerable,C#,Asp.net,Linq To Sql,Group By,Ienumerable,我正在尝试对用户定义对象的IEnumerable列表应用一点groupby/Crosstabing逻辑,我想知道是否有人能帮我解决这个问题。我被一个现有的(相当烦人的)对象模型所困扰,但不管怎样,这里是 考虑下面的类,我将把它压缩成相关的属性,这样你就可以得到jist public class Holding { private void Institution; private string Designation; private Owner Owner; priva
public class Holding
{
private void Institution;
private string Designation;
private Owner Owner;
private Event Event;
private Shares Shares;
}
我想把它转换成一个满足以下要求的列表
- 对象按机构分组
- 该机构的父列表包含一个新对象的列表,该对象具有名称和所有者的唯一组合
- 现在,对于指定和所有者的每个组合,我们都会得到另一个独特事件的子列表
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();
}
公共静态列表GetHoldingByEvents(
int eventId1,
int eventId2)
{
DataClassesDataContext db=新DataClassesDataContext();
var q=以分贝为单位的h
哪里
h、 EventId==eventId1||
h、 EventId==eventId2
选择h;
返回q.Distinct().ToList();
}
任何帮助/指导都将不胜感激
提前感谢。我正在使用ToLookup方法,这是一种分组,它需要两个参数,第一个是用于定义组键的函数,第二个是用作选择器的函数(从匹配中获取的内容)
我以为你的课是这样的
public class Holding
{
public Institution Institution {get; set;}
public string Designation {get; set;}
public Owner Owner {get; set;}
public Event Event {get; set;}
}
public class Owner
{
public int OwnerId {get; set;}
}
public class Event
{
public int EventId {get; set;}
}
public class Institution
{
public int InstitutionId {get; set;}
}
你,我的好人,是一个冠军和学者。我正在电脑前为你唱着贝蒂·麦德勒的《我翅膀下的风》。我完全不知道林克斯·托卢库普。。。泰!欢迎,这真是太好了!
public class Holding
{
public Institution Institution {get; set;}
public string Designation {get; set;}
public Owner Owner {get; set;}
public Event Event {get; set;}
}
public class Owner
{
public int OwnerId {get; set;}
}
public class Event
{
public int EventId {get; set;}
}
public class Institution
{
public int InstitutionId {get; set;}
}