我有一个名为cPoint
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
。我解析XML文件,然后将数据添加到:
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);
最后我用列表做一些数学计算,然后根据用户输入将这些结果添加到sorted.csv:
if (aoiFlag == true)
{
sorted.Last(n => n.point == name).csv += "," + sixSigx + "," + sixSigy;
}
现在我想做的是,当sorted
完全填充并建立用户输入时,在写入文件之前返回到排序列表的前4个元素并将数据添加到csv (sorted.csv?)这4个元素中每个类的一部分。我的目标是将额外的文本(红色文本)添加到输出中。我已经对如何执行此操作进行了一些研究,但因为sorted
是一个类列表,它让我不再使用像List.Insert
这样的东西。我有以前的C经验,但这是我的第一个C#项目(OOP是一个不同的世界!)。任何帮助都会很棒,因为我是新手。
干杯
答案 0 :(得分:3)
要更改列表中的任何元素,您可以像C的数组一样使用它,
for (int i=0; i<4; i++) {
sorted[i].csv += ",USL(um),70"
}
要使用Insert(index, value)
方法将新元素插入到列表的特定索引中。此方法在索引位置插入一个新元素并向右移动元素。
sorted.Insert(i, myPoint);
答案 1 :(得分:2)
正如我在上面的评论中发布的那样,你需要做一个简单的for循环来访问列表中的元素(无论是类元素还是基本类型):
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 */;
答案 2 :(得分:0)
您可以使用ElementAt
LINQ方法访问列表中的某个元素。
var firstElement = sorted.ElementAt(0);
firstElement.Result = "USL (µm)";
var secondElement = sorted.ElementAt(1);
// ...