gpt4 book ai didi

c# - 使用 linq 对列表进行采样

转载 作者:太空狗 更新时间:2023-10-30 00:21:39 26 4
gpt4 key购买 nike

我需要一个辅助方法来向图表添加轴标签。我不想在图表中具有值的轴上的每个点都添加标签,因为那样会太忙。所以我需要定期提取样本。到目前为止,我已经提出了满足要求的以下方法,但我认为必须有一种更简洁的方法来使用 Linq 来完成此操作。谁能想到如何使它更简洁(n 代表我想要返回的样本总数)?

public static List<T> Sample<T>(this List<T> list, int n)
{
var samples = new List<T>();
var divisor = list.Count/n;
for (var i = 0; i < list.Count; i++)
if (samples.Count == i/divisor)
samples.Add(list[i]);
return samples;
}

最佳答案

嗯,怎么样:

return Enumerable.Range(0,n).Select(i=>list[(i*list.Count)/(n-1)]);

这并不重要,但这给您带来了稍微更好的复杂性(O(n) 而不是 O(list.Count)

关于c# - 使用 linq 对列表进行采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com