本文整理汇总了C#中IReadOnlyDictionary.OrderByDescending方法的典型用法代码示例。如果您正苦于以下问题:C# IReadOnlyDictionary.OrderByDescending方法的具体用法?C# IReadOnlyDictionary.OrderByDescending怎么用?C# IReadOnlyDictionary.OrderByDescending使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IReadOnlyDictionary
的用法示例。
在下文中一共展示了IReadOnlyDictionary.OrderByDescending方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FillTopBuckets
private static void FillTopBuckets(
Dictionary<ClusterAnalysis, Dictionary<BigInteger, List<double>>> clusterAnalysisTopBuckets,
ClusterAnalysis sampleSkylineType,
IReadOnlyDictionary<BigInteger, List<IReadOnlyDictionary<long, object[]>>> skylineTypeBuckets,
int skylineCount, int entireDbCount, int entireSkylineCount)
{
List<KeyValuePair<BigInteger, List<IReadOnlyDictionary<long, object[]>>>> sortedTop5 =
skylineTypeBuckets.OrderByDescending(l => l.Value.Count).ThenBy(l => l.Key).Take(5).ToList();
// track top 5 buckets
foreach (KeyValuePair<BigInteger, List<IReadOnlyDictionary<long, object[]>>> skylineTypeBucket in sortedTop5
)
{
if (!clusterAnalysisTopBuckets[sampleSkylineType].ContainsKey(skylineTypeBucket.Key))
{
clusterAnalysisTopBuckets[sampleSkylineType].Add(skylineTypeBucket.Key, new List<double>());
}
double percent = (double) skylineTypeBucket.Value.Count / skylineCount;
clusterAnalysisTopBuckets[sampleSkylineType][skylineTypeBucket.Key].Add(percent);
}
foreach (
KeyValuePair<BigInteger, List<double>> entireDbBucket in
clusterAnalysisTopBuckets[ClusterAnalysis.EntireDb])
// additionally track top 5 buckets of entire db
{
if (!clusterAnalysisTopBuckets[sampleSkylineType].ContainsKey(entireDbBucket.Key))
{
clusterAnalysisTopBuckets[sampleSkylineType].Add(entireDbBucket.Key, new List<double>());
}
if (!skylineTypeBuckets.ContainsKey(entireDbBucket.Key)) // not contained => percentage = 0
{
clusterAnalysisTopBuckets[sampleSkylineType][entireDbBucket.Key].Add(0);
}
else if (sortedTop5.All(item => item.Key != entireDbBucket.Key))
// else: already added in previous foreach => no need to add again
{
double percent = (double) skylineTypeBuckets[entireDbBucket.Key].Count / entireDbCount;
clusterAnalysisTopBuckets[sampleSkylineType][entireDbBucket.Key].Add(percent);
}
}
foreach (
KeyValuePair<BigInteger, List<double>> entireSkylineBucket in
clusterAnalysisTopBuckets[ClusterAnalysis.EntireSkyline])
// additionally track top 5 buckets of entire skyline
{
if (!clusterAnalysisTopBuckets[sampleSkylineType].ContainsKey(entireSkylineBucket.Key))
{
clusterAnalysisTopBuckets[sampleSkylineType].Add(entireSkylineBucket.Key, new List<double>());
}
if (!skylineTypeBuckets.ContainsKey(entireSkylineBucket.Key)) // not contained => percentage = 0
{
clusterAnalysisTopBuckets[sampleSkylineType][entireSkylineBucket.Key].Add(0);
}
else if (sortedTop5.All(item => item.Key != entireSkylineBucket.Key))
// else: already added in previous foreach => no need to add again
{
double percent = (double) skylineTypeBuckets[entireSkylineBucket.Key].Count / entireSkylineCount;
clusterAnalysisTopBuckets[sampleSkylineType][entireSkylineBucket.Key].Add(percent);
}
}
}