Ich brauche eine Hilfsmethode zum Hinzufügen von Achsenbeschriftungen zu einem Diagramm. Ich möchte nicht an jeder Stelle entlang der Achse, die Werte im Diagramm enthält, eine Beschriftung hinzufügen, da dies zu sehr beansprucht würde. Also muss ich in regelmäßigen Abständen Proben entnehmen. Bis jetzt habe ich die folgende Methode entwickelt, die die Anforderungen erfüllt, aber ich denke, dass es eine bessere Möglichkeit geben muss, dies mit Linq zu erreichen. Kann jemand darüber nachdenken, wie dies präziser gemacht werden könnte (n steht für die Gesamtzahl der Samples, die ich zurück haben möchte)?Sampling einer Liste mit linq
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;
}
Sind Sie sicher, Sampling wird eine schöne Achse geben? Ich würde nach Min und Max suchen und eine Skala mit Log10-Arithmetik erstellen. Die meisten Charting-Tools werden es so machen. –
@Henk Holterman, nachdem ich die Ausgabe angeschaut habe, bin ich geneigt, Ihnen zuzustimmen. – grenade
Sampling war der falsche Weg, um dieses Problem zu lösen. Ich überlasse die Frage, weil vielleicht jemand eines Tages einen Sampler für etwas anderes braucht, aber am Ende habe ich die obige Empfehlung verwendet. Sie können das Ergebnis hier sehen: http://stackoverflow.com/questions/25458/how-costly-is-reflection-really/4440657#4440657 – grenade