我有一个CSV,其中包含零件列表,以及不同的列,用于显示我们是否具有每个零件的不同生产步骤的图片。例如,第一列是零件名称,第二列是图案信息,等等。
我可以放入一天中可能要处理的部分数组。
我想将CSV解析为数组或其他内容,比较每行的第一列以查看其是否与当天零件列表中的任何内容匹配,然后从CSV中打印出整行数据,如果有比赛。
我已经在Matlab中做了类似的事情,但是由于没有Matlab的工作许可,我试图在C#中做到这一点,我对此很陌生,所以我对我需要做的事情有基本的了解,但是,我还没有真正理解用C#做到这一点的正确方法。
因此,我一直在尝试跟着我发现的一个解析CSV的示例,但是我只是有点不明白如何针对自己想要的内容修改它。
class Picture{
public string Number;
public string Pattern;
public string Set;
public string Mold;
public string Wash;
public string Core;
public string Close;
public static Picture FromLine (string line)
{
var data = line.Split(',');
return new Picture()
{
Number = data[0],
Pattern = data[1],
Set = data[2],
Mold = data[3],
Wash = data[4],
Core = data[5],
Close =data[6],
};
}
}
class Program
{
static void Main(string[] args)
{
string[] partList = {"cd-6566","CC-0526"};
args = new[]{"ProcessPics.csv"};
var part = ReadPart(args[0]);
Console.WriteLine("Hello World!");
Console.WriteLine("Help");
}
static IList<Picture> ReadPart(string path)
{
var list = new List<Picture>();
foreach (var line in File.ReadLines(path).Skip(1))
{
list.Add(Picture.FromLine(line));
Console.WriteLine("check");
}
return list;
}
}
答案 0 :(得分:0)
在行循环中,您要检查partList中是否包含第一列(= Picture.Number):
foreach (var line in File.ReadLines(path).Skip(1))
{
var picture = Picture.FromLine(line);
if (!partList.Contains(picture.Number)) continue;
list.Add(picture);
Console.WriteLine("check");
}