2017-08-07 43 views
-2

我正在嘗試爲目錄中每個可用文件創建一個列表。每個文件都必須有單獨的項目列表。我創建了一個列表,但它顯示了所有文件中可用的所有項目。怎麼做?在這方面需要幫助。 我這樣做,但它顯示所有文件中的所有項目「產品」: 一段代碼在這裏: List products = new List();使用C#爲目錄中的每個文件創建項目的特定列表

foreach (string file in fileList) 
    { 

     using (StreamReader sr = new StreamReader(file)) 
     { 
      string line; 
      while ((line = sr.ReadLine()) != null) 
      { 
       rows++; 
       if (line.StartsWith("Product")) 
       { 
        var val = line.Split(','); 

        upc = val[1]; 
        pName = val[3]; 

        products.Add(upc); 
        products.Add(pName); 

        productList = string.Join(",", products.ToArray()); 
+3

請分享您的代碼 – derloopkat

+2

'我想創建每個文件在目錄中可用的一個列表。每個文件都必須有一個單獨的項目列表。「我真的不明白 – EpicKip

+0

你可以使用'var files = Directory.GetFiles(path);'獲得這個文件夾中的文件數組。希望這可以幫助。 – KamikyIT

回答

0

添加這些clases

public class ProductFile 
{ 
    public string Name; 
    public List<Product> Products = new List<Product>(); 
} 

public class Product 
{ 
    public string Upc; 
    public string PName; 
} 

,然後在你的代碼:

var productFiles = new List<ProductFile>(); 
foreach (string file in fileList) 
{ 
    var productFile = new ProductFile(){ Name = Path.GetFileName(file) }; 
    using (StreamReader sr = new StreamReader(file)) 
    { 

     string line; 
     while ((line = sr.ReadLine()) != null) 
     { 
      rows++; 
      if (line.StartsWith("Product")) 
      { 
       var val = line.Split(','); 
       var product = new Product() 
       { 
        Upc = val[1], 
        PName = val[3] 
       }; 
       productFile.Products.Add(product); //Adds a product 
      } 
     } 
    }; 
    productFiles.Add(productFile); //Adds a file 
} 
相關問題