在C#中快速查找子列表

时间:2016-11-21 07:33:14

标签: c# linq

假设我有一个像

这样的模型类
xcode-select --install

现在我有一个这个类的列表:List Players;

此列表包含一些实例,例如

class Player
{
    String FirstName;
    String LastName;
    String Team;
    int UniformNumber;
    int Height;
}

有没有办法可以获得一个子Players[0] = new Player(){ FirstName = "Kobe", LastName = "Byrant", Team = "Lakers", UniformNumber = 24, Height = 19}; //... 类型列表,其中包含相同的高度和相同的UniformNumber播放器?

有人能告诉我一种快速完成的方法(假设列表中有10 000名玩家)? LINQ快速投入了吗?感谢。

[编辑] 在提出问题之前,我使用以下代码:

List<Player>

我可以得到结果,但它确实很慢,所以我想要这个建议,谢谢。

1 个答案:

答案 0 :(得分:0)

首先,您需要公开属性:

class Player
{
    public String FirstName {get;set}
    public String LastName {get;set;}
    public String Team {get;set;}
    public int UniformNumber {get;set;}
    public int Height {get;set}
}

然后你可以通过这样的查询编写一个组:

var result= ls
   .GroupBy (l =>new{l.UniformNumber,l.Height})
   .Select (l =>    
  new{l.Key.Height,l.Key.UniformNumber,Players=l.Select(s=>s).ToList}).ToList();