2010-06-30 2 views
2

Je suis un C# noob mais j'ai vraiment besoin de l'aide d'un professionnel. J'utilise visual studio 2005 pour un projet donc je n'ai pas math.linq J'ai besoin de calculer l'écart-type d'une liste générique d'objets. La liste contient juste une liste de nombres flottants, rien de trop compliqué. Cependant, je n'ai jamais fait cela auparavant, j'ai donc besoin de quelqu'un pour me montrer qui a calculé l'écart-type d'une liste générique avant. Voici mon code que j'ai essayé de démarrer sur:calculer l'écart-type d'une liste générique d'objets

//this is my list of objects inside. The valve data just contains a bunch of floats. 
public class ValveDataResults 
{ 
    private List<ValveData> m_ValveResults; 

    public void AddValveData(ValveData valve) 
    { 
     m_ValveResults.Add(valve); 
    } 

    //this is the function where the standard deviation needs to be calculated: 
    public float LatchTimeStdev() 
    { 
     //below this is a working example of how to get an average or mean 
     //of same list and same "LatchTime" that needs to be calculated here as well. 
    } 

    //function to calculate average of latch time, can be copied for above st dev. 
    public float LatchTimeMean() 
    { 
     float returnValue = 0; 
     foreach (ValveData value in m_ValveResults) 
     { 
      returnValue += value.LatchTime; 
     } 
     returnValue = (returnValue/m_ValveResults.Count) * 0.02f; 
     return returnValue; 
    } 
} 

L'objet « Le temps de verrouillage » est un objet flottant de la « ValveData » qui est inséré dans la liste des m_ValveResults.

C'est tout. Toute aide serait grandement appréciée. Merci

+5

Bienvenue sur Stackoverflow. Vous avez une bonne question, mais pour référence future, "PLZ HELP !! ?? 11" n'est pas un bon titre de question. –

+3

Pourquoi accepteriez-vous [cette réponse] (http://stackoverflow.com/questions/3141692/c-standard-deviation-of-generic-list/3141731#3141731) puis vous poser à nouveau la même question? –

+1

@John - J'ai remarqué que dans cette question, il précise qu'il utilise VS 2005. Il ne pourrait donc pas utiliser Linq. – Greg

Répondre

1

Essayez

public float LatchTimeStdev() 
{ 
    float mean = LatchTimeMean(); 
    float returnValue = 0; 
    foreach (ValveData value in m_ValveResults) 
    { 
     returnValue += Math.Pow(value.LatchTime - mean, 2); 
    } 
    return Math.Sqrt(returnValue/m_ValveResults.Count-1)); 
} 

est juste le même que la réponse donnée à LINQ, mais sans LINQ de

+0

merci. mais qu'est-ce que "somme"? et valeurs.Compte? Merci de votre aide. C'est plus pour ce que je cherche. –

+0

désolé, l'a édité pour fonctionner correctement – fbstj