2016-09-08 1 views
0

に指定されたインデックスにあるデータを挿入する私はcPointは、クラスリストのC#

public class cPoint 
{ 
    public string point; 
    public string time; 
    public double xPoint; 
    public double yPoint; 
    public string csv; 
    public string barcode; 
    public double meanX; 
    public double meanY; 
} 

とグローバルリストsortedというクラスを持っています。その後、ユーザー入力に基づいてsorted.csvし、それらの結果を追加し、最終的に私はリストといくつかの数学計算を行う

cPoint Point = new cPoint(); 
Point.time = endTime; 
Point.point = location; 
Point.xPoint = Convert.ToDouble(xOffset); 
Point.yPoint = Convert.ToDouble(yOffset); 
Point.barcode = panelSerNo; 
sorted.Sort((x, y) => x.point.CompareTo(y.point)); 
Point.csv = endTime + "," + panelSerNo + "," + location + "," + xOffset + "," + yOffset; 
sorted.Add(Point); 

:私は、XMLファイルを解析し、その後にデータを追加

if (aoiFlag == true) 
{ 
    sorted.Last(n => n.point == name).csv += "," + sixSigx + "," + sixSigy; 
} 

このプリントcsvファイル:sortedがフル装備され、ユーザーの入力がファイルへの書き込みソートされたリストの最初の4つの要素に戻って、追加する前に、確立されたときに今 enter image description here

私がやりたい何がありますこれら4つの要素の各クラスのcsv(sorted.csv?)部分にデータをコピーします。私の目標は、余分なテキスト(赤のテキスト)を出力に追加することです。私はこれを行う方法についていくつかの研究を行ってきましたが、sortedがクラスのリストであるので、それはList.Insertのようなものを使用する方法を私に捨ててしまいます。以前のCの経験がありますが、これは私の最初のC#プロジェクトです(OOPは別の世界です)。私は初心者なので、どんな助けも素晴らしいだろう。あなたがリストの使用Insert(index, value)方法の特定のインデックスに新しい要素を挿入するにはCの配列、

for (int i=0; i<4; i++) { 
    sorted[i].csv += ",USL(um),70" 
} 

のようにそれを使用することができ、リスト内の任意の要素を変更するには

乾杯

+0

は、だから、最初の4つの要素の 'csv'プロパティを更新したいですか? – user3185569

+0

はい、混乱を避けるために背景情報を追加すると思ったばかりです –

+2

インデックスで要素にアクセスできます。 'sorted [0] .csv + =" USL(um) "+"、 "+" 70 ";'私はあなたがそれらの8つの値をどこから読んでいるのか本当に分かりません。しかし、0〜3の単純なforループは、魅力的に機能します。 – user3185569

答えて

2

私は上記のコメントに投稿されたとして、あなたは(クラス要素またはプリミティブ型かどうか)は、リスト内の要素にアクセスするためのループのための簡単な操作を行う必要があります。

for(int i =0; i < 4; i++) 
{ 
    // Change this static data to read it from somewhere 
    // like += results[i] + "," + pass[i]; 
    sorted[i].csv += "USL(um)" + "," + "70"; 
} 

それともあなたは持っている場合静的データ、文字列の配列内に置くか、4つの重複ライン(推奨されません)書き込みのいずれか:

sorted[0].csv += "USL(um)" + "," + "70"; 
sorted[1].csv += /* next line data */; 
sorted[2].csv += /* next line data */; 
sorted[3].csv += /* next line data */; 
1

。このメソッドは、新しい要素をインデックス位置に挿入し、残りの要素を右にシフトします。あなたは、リスト内の特定の要素にアクセスするためにElementAt LINQメソッドを使用することができます

sorted.Insert(i, myPoint); 
0

var firstElement = sorted.ElementAt(0); 
firstElement.Result = "USL (µm)"; 

var secondElement = sorted.ElementAt(1); 
// ... 
関連する問題