Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 旋转IEnumerable列表_C#_Asp.net_Linq To Sql_Group By_Ienumerable - Fatal编程技术网

C# 旋转IEnumerable列表

C# 旋转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

我正在尝试对用户定义对象的IEnumerable列表应用一点groupby/Crosstabing逻辑,我想知道是否有人能帮我解决这个问题。我被一个现有的(相当烦人的)对象模型所困扰,但不管怎样,这里是

考虑下面的类,我将把它压缩成相关的属性,这样你就可以得到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();
}
公共静态列表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;}
}