C# 如何在ICollection中指定要拉出的对象

C# 如何在ICollection中指定要拉出的对象,c#,C#,我有一个CurJob对象的ICollection。我需要从这些对象中的特定对象访问属性。我现在这样做只是让我可以访问集合中的第一个对象。我知道我在告诉它使用。First()我意识到这可能不是我想要的。所以基本上,这个集合中可能只有1个,或者可能有无穷多个。我希望能够根据名为entryNumber的属性获取我需要的特定项。我需要最高的入口编号作为我要公开的对象。不知道如何处理思想。有什么想法吗 // Find the job we just submitted CurJob runningJob

我有一个CurJob对象的ICollection。我需要从这些对象中的特定对象访问属性。我现在这样做只是让我可以访问集合中的第一个对象。我知道我在告诉它使用。First()我意识到这可能不是我想要的。所以基本上,这个集合中可能只有1个,或者可能有无穷多个。我希望能够根据名为entryNumber的属性获取我需要的特定项。我需要最高的入口编号作为我要公开的对象。不知道如何处理思想。有什么想法吗

// Find the job we just submitted
CurJob runningJob = CurJob.Find("Some Job", StateType.Any, server).ToList().First();

你差点就成功了。在挑选第一个之前,只需按入口编号订购即可

CurJob job = CurJob.Find("Some Job", StateType.Any, server).ToList()
                   .OrderByDescending(j => j.entryNumber).First();
编辑

为此,您需要使用System.Linq命名空间

编辑

如果要查找与特定入口编号匹配的所有作业,而不是最高的,请尝试以下操作:

var jobs = CurJob.Find("Some Job", StateType.Any, server).ToList()
                   .Where(j => j.entryNumber == X);

(用你要找的号码替换X)

你差不多找到了。在挑选第一个之前,只需按入口编号订购即可

CurJob job = CurJob.Find("Some Job", StateType.Any, server).ToList()
                   .OrderByDescending(j => j.entryNumber).First();
编辑

为此,您需要使用System.Linq命名空间

编辑

如果要查找与特定入口编号匹配的所有作业,而不是最高的,请尝试以下操作:

var jobs = CurJob.Find("Some Job", StateType.Any, server).ToList()
                   .Where(j => j.entryNumber == X);

(用您要找的号码替换X)

您要找的是一个特定的
入口号码
,但您还想要最高的?这听起来很矛盾。如果可能有无限多的项目,那么不一定有一个项目的数量最高。你的意思是可能有无限多的项目,或者项目的数量是有限的,但没有限制?这些是非常非常不同的事情。您可以对有限无界列表进行排序;您无法对无限列表进行排序。您正在查找特定的
入口编号
,但您还想要最高的?这听起来很矛盾。如果可能有无限多的项目,那么不一定有一个项目的数量最高。你的意思是可能有无限多的项目,或者项目的数量是有限的,但没有限制?这些是非常非常不同的事情。您可以对有限无界列表进行排序;你不能对无限列表进行排序。唯一的问题(我的错误没有提到)是我不知道条目号。所以我只需要取最高的一个。@Tim这个答案中的第一段代码就可以了。啊,你说得对,因为它从降序列表中取第一个,将最高的条目号放在第一位。谢谢您的关注。您确定这样比使用
Max()
Select()
更好吗?唯一的问题(我的错误没有提到)是我不知道条目号。所以我只需要取最高的一个。@Tim这个答案中的第一段代码就可以了。啊,你说得对,因为它从降序列表中取第一个,将最高的条目号放在第一位。谢谢您的关注。您确定这样比使用
Max()
Select()
更好吗?