【发布时间】:2016-11-21 07:33:13
【问题描述】:
假设我有一个类似的模型类
class Player
{
String FirstName;
String LastName;
String Team;
int UniformNumber;
int Height;
}
现在我有了这个类的列表:List Players;
此列表包含一些实例,例如,
Players[0] = new Player(){
FirstName = "Kobe",
LastName = "Byrant",
Team = "Lakers",
UniformNumber = 24,
Height = 19}; //...
有没有办法获得一个子 List<Player> 类型列表,其中包含相同的高度和相同的 UniformNumber 球员?
谁能告诉我一种快速完成的方法(假设列表中有 10 000 名玩家)? LINQ 够快吗?谢谢。
[编辑] 在提出问题之前,我使用以下代码:
var subList = new List<Player>();
foreach (var player in players)
{
if (players.Where(p =>
(p.Height == player.Height) &&
(p.UniformNumber == player.UniformNumber )).Count() > 1)
{
subList.Add(item);
}
}
我可以得到结果,但它真的很慢,所以我想要建议,谢谢。
【问题讨论】:
-
“LINQ 够快吗” - 你需要它有多快?您尝试过使用 LINQ 了吗?
-
LINQ 不会给您带来任何性能提升
-
你从哪里复制的文本?你的报价全错了。
-
“快速完成” – 为了将所有玩家分组,您必须查看每个玩家。这是您需要做的最少工作量。这对你来说已经太慢了吗?那么就没有办法“快速完成”。您尝试过哪些“慢”解决方案?
-
令人惊讶的是,有多少人只是吐出 LQ 答案并在他们意识到他们不知道问题是什么时删除...