我需要一个辅助方法来将轴标签添加到图表中.我不想在图表中具有值的轴的每个点添加标签,因为这会太忙.所以我需要定期提取样品.到目前为止,我已经提出了满足要求的以下方法,但我认为必须有一种更简洁的方法来实现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;
}
Run Code Online (Sandbox Code Playgroud)
嗯,怎么样:
return Enumerable.Range(0,n).Select(i=>list[(i*list.Count)/(n-1)]);
Run Code Online (Sandbox Code Playgroud)
并不是真的很重要,但这会给你一个稍微好一点的复杂性(O(n)而不是O(list.Count)