要處理來自日誌文件的數據,我將數據讀入列表。將列表中的struct成員轉換爲數組
當我試圖從列表轉換爲圖表例程的數組時,我遇到了麻煩。
爲了討論起見,我們假設日誌文件包含三個值* - x,y和theta。在執行文件I/O的例程中,我讀取了三個值,將它們分配給一個結構並將結構添加到PostureList。
繪圖程序,希望x,y和theta在單個數組中。我的想法是使用ToArray()方法進行轉換,但是當我嘗試下面的語法時,出現錯誤 - 請參閱下面的註釋中的錯誤。我有一種替代方法來進行轉換,但希望獲得有關更好方法的建議。
我對C#很陌生。在此先感謝您的幫助。
注意:*實際上,日誌文件包含許多不同的有效負載大小的不同信息。
struct PostureStruct
{
public double x;
public double y;
public double theta;
};
List<PostureStruct> PostureList = new List<PostureStruct>();
private void PlotPostureList()
{
double[] xValue = new double[PostureList.Count()];
double[] yValue = new double[PostureList.Count()];
double[] thetaValue = new double[PostureList.Count()];
// This syntax gives an error:
// Error 1 'System.Collections.Generic.List<TestNameSpace.Test.PostureStruct>'
// does not contain a definition for 'x' and no extension method 'x' accepting a first
// argument of type 'System.Collections.Generic.List<TestNameSpace.Test.PostureStruct>'
// could be found (are you missing a using directive or an assembly reference?)
xValue = PostureList.x.ToArray();
yValue = PostureList.y.ToArray();
thetaValue = PostureList.theta.ToArray();
// I could replace the statements above with something like this but I was wondering if
// if there was a better way or if I had some basic mistake in the ToArray() syntax.
for (int i = 0; i < PostureList.Count(); i++)
{
xValue[i] = PostureList[i].x;
yValue[i] = PostureList[i].y;
thetaValue[i] = PostureList[i].theta;
}
return;
}