本文整理汇总了C#中KeyValuePair.OrderByDescending方法的典型用法代码示例。如果您正苦于以下问题:C# KeyValuePair.OrderByDescending方法的具体用法?C# KeyValuePair.OrderByDescending怎么用?C# KeyValuePair.OrderByDescending使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KeyValuePair
的用法示例。
在下文中一共展示了KeyValuePair.OrderByDescending方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ChooseBestByRoulete
public Phenotype[] ChooseBestByRoulete(int qty)
{
Phenotype[] result = new Phenotype[qty];
float totalFitness = 0;
foreach (Phenotype phenotype in phenotypes)
{
totalFitness += phenotype.fitness;
}
KeyValuePair<Phenotype, double>[] candiates = new KeyValuePair<Phenotype, double>[phenotypes.Count];
int i = 0;
foreach (Phenotype phenotype in phenotypes)
{
double p = (rouleteBiasToTheBest + rnd.NextDouble() * (1 - rouleteBiasToTheBest)) * phenotype.fitness / totalFitness;
candiates[i] = new KeyValuePair<Phenotype, double>(phenotype, p);
i++;
}
IOrderedEnumerable<KeyValuePair<Phenotype, double>> bestCandidates = candiates.OrderByDescending(
(KeyValuePair<Phenotype, double> candidate) => candidate.Value
);
int added = 0;
foreach (KeyValuePair<Phenotype, double> candidate in bestCandidates)
{
result[added++] = candidate.Key;
if (added >= qty) break;
}
return result;
}