如何从 C# 中的 CSV 文件创建列表?
How to create a list from a CSV file in c#?
简单地说,我的项目中有一个 excel CSV 文件,其中包含 table 个产品和一个产品 Class
我似乎无法提取数据以从 CSV 文件的列表中创建产品对象列表。
我意识到发布了类似的问题,但我似乎无法使其正常工作。
谁能找出问题所在?
private static List<Product> ReadProductFile()
{
List<Product> products = new List<Product>();
string curdir = Directory.GetCurrentDirectory();
string filename = @"C:\Projects\ProductSales\ProductSales\Data\productdetails.csv";
string[] linesInFile = File.ReadAllLines(filename);
string[] ProductDetails = new string[0];
for (int i = 0; i < linesInFile.Length; i++)
{
string currentLine1 = linesInFile[i];
ProductDetails = currentLine1.Split(',');
}
foreach (var p in ProductDetails)
{
Product prod = new Product()
{
prod.ID = p. ??
};
products.Add(prod);
}
}
将您的代码更改为:
for (int i = 0; i < linesInFile.Length; i++)
{
string currentLine1 = linesInFile[i];
ProductDetails = currentLine1.Split(',');
foreach (var p in ProductDetails)
{
Product prod = new Product();
{
prod.ID = p;
};
products.Add(prod);
}
}
您的ProductDetails
现在只是一些字符串值,您需要将这些字符串与特定字段相关联。最简单的方法是手动完成,只需检查文件中的顺序并执行以下操作:
for (int i = 1; i < linesInFile.Length; i++)
{
string currentLine1 = linesInFile[i];
ProductDetails = currentLine1.Split(',');
Product prod = new Product();
{
ID = ProductDetails[0];
Name = ProductDetails[1];
};
products.Add(prod);
}
我从 i = 1
开始循环,因为我想第一行将包含字幕。
但是,如果文件格式发生变化,您将不得不重写此代码,因此您可能希望自动将 link 属性添加到列。如果是这种情况,请查看 System.Reflection
库。
简单地说,我的项目中有一个 excel CSV 文件,其中包含 table 个产品和一个产品 Class 我似乎无法提取数据以从 CSV 文件的列表中创建产品对象列表。 我意识到发布了类似的问题,但我似乎无法使其正常工作。 谁能找出问题所在?
private static List<Product> ReadProductFile()
{
List<Product> products = new List<Product>();
string curdir = Directory.GetCurrentDirectory();
string filename = @"C:\Projects\ProductSales\ProductSales\Data\productdetails.csv";
string[] linesInFile = File.ReadAllLines(filename);
string[] ProductDetails = new string[0];
for (int i = 0; i < linesInFile.Length; i++)
{
string currentLine1 = linesInFile[i];
ProductDetails = currentLine1.Split(',');
}
foreach (var p in ProductDetails)
{
Product prod = new Product()
{
prod.ID = p. ??
};
products.Add(prod);
}
}
将您的代码更改为:
for (int i = 0; i < linesInFile.Length; i++)
{
string currentLine1 = linesInFile[i];
ProductDetails = currentLine1.Split(',');
foreach (var p in ProductDetails)
{
Product prod = new Product();
{
prod.ID = p;
};
products.Add(prod);
}
}
您的ProductDetails
现在只是一些字符串值,您需要将这些字符串与特定字段相关联。最简单的方法是手动完成,只需检查文件中的顺序并执行以下操作:
for (int i = 1; i < linesInFile.Length; i++)
{
string currentLine1 = linesInFile[i];
ProductDetails = currentLine1.Split(',');
Product prod = new Product();
{
ID = ProductDetails[0];
Name = ProductDetails[1];
};
products.Add(prod);
}
我从 i = 1
开始循环,因为我想第一行将包含字幕。
但是,如果文件格式发生变化,您将不得不重写此代码,因此您可能希望自动将 link 属性添加到列。如果是这种情况,请查看 System.Reflection
库。