C# 返回数组中方法值最高的对象
我有一系列的口袋妖怪。 口袋妖怪有一个抽象的方法vitesse(法语中vitesse=speed),它根据口袋妖怪的类型而变化 我还有一个类TabPokemon,它生成我的pokemons数组。 在这门课上,我想计算最快的口袋妖怪 这是我的方法:C# 返回数组中方法值最高的对象,c#,methods,foreach,return,C#,Methods,Foreach,Return,我有一系列的口袋妖怪。 口袋妖怪有一个抽象的方法vitesse(法语中vitesse=speed),它根据口袋妖怪的类型而变化 我还有一个类TabPokemon,它生成我的pokemons数组。 在这门课上,我想计算最快的口袋妖怪 这是我的方法: public Pokemon plusRapide() { Pokemon winner; double vitesse = 0.0; foreach(Pokemon p in tab) { if(p.v
public Pokemon plusRapide()
{
Pokemon winner;
double vitesse = 0.0;
foreach(Pokemon p in tab)
{
if(p.vitesse()> vitesse)
{
vitesse = p.vitesse();
winner = p;
}
}
return winner;
}
它在return语句中显示了一个错误,因为它是在本地分配的。
如何返回速度值最大的对象口袋妖怪?通过
pokemonwinner=null初始化口袋妖怪对象
在方法的第一行。通过pokemonwinner=null初始化Pokemon对象方法的第一行上的code>。如果tab
为空,或者vitesse
值对于所有元素都为负值,您希望返回什么?如果您想返回null
,那么首先将winner
指定为null。与问题本身无关,我建议您尽早开始遵循.NET命名约定。这可以通过在一行代码中使用linq来完成-return tab.OrderBy(p=>p.vitesse()).FirstOrDefault()
@ZoharPeled:或者不使用MoreLINQ的MaxBy
进行排序。您已经回答了这个问题@JonSkeet:)那么,如果tab
为空,或者如果所有元素的vitesse
值均为负值,您希望返回什么?如果您想返回null
,那么首先将winner
指定为null。与问题本身无关,我建议您尽早开始遵循.NET命名约定。这可以通过在一行代码中使用linq来完成-return tab.OrderBy(p=>p.vitesse()).FirstOrDefault()
@ZoharPeled:或者不使用MoreLINQ的MaxBy
进行排序。您已经回答了这个问题@JonSkeet:)