2017-11-03 183 views
-2

我正在尋找從兩個列的CSV文件存儲值,我有以下類ReadFromCSV處理CSV文件的讀取,但我有困難使用此列表來顯示內容一次按鈕被點擊。我必須閱讀CSV文件的代碼如下:從CSV文件讀取數據

namespace ELMFS 
{ 
    public class ReadFromCSV 
    { 
     static void ReadCSV(string[] args) 
     { 
      List<TextSpeak> TxtSpk = File.ReadAllLines(@"C:\textwords.csv") 
       .Skip(1) 
       .Select(t => TextSpeak.FromCsv(t)) 
       .ToList(); 
     } 
    } 
    public class TextSpeak 
    { 
     string Abreviated; 
     string Expanded; 


     public static TextSpeak FromCsv(string csvLine) 
     { 
      string[] TxtSpk = csvLine.Split(','); 
      TextSpeak textSpeak = new TextSpeak(); 
      textSpeak.Abreviated = TxtSpk[0]; 
      textSpeak.Expanded = TxtSpk[1]; 
      return textSpeak; 
     } 
    } 
} 

我想顯示在消息框中的textSpeak.Abreviated,但似乎無法從WPF window訪問它。

如何在應用程序內的其他窗口中使用此列表?

任何意見將不勝感激!

在此先感謝!

回答

1

首先,ReadCSV方法應返回生成的List對象(或者不能在其他地方使用該列表)。

其次,TextSpeak類應該具有屬性,以便您可以在類之外訪問其成員變量。

I.e.這樣的事情應該工作:

namespace ELMFS 
{ 
    public class ReadFromCSV 
    { 
     public static List<TextSpeak> ReadCSV(string[] args) 
     { 
      List<TextSpeak> TxtSpk = File.ReadAllLines(@"C:\textwords.csv") 
       .Skip(1) 
       .Select(t => TextSpeak.FromCsv(t)) 
       .ToList(); 
      return TxtSpk; 
     } 
    } 
    public class TextSpeak 
    { 
     public string Abreviated { get; private set; } 
     public string Expanded { get; private set; } 


     public static TextSpeak FromCsv(string csvLine) 
     { 
      string[] TxtSpk = csvLine.Split(','); 
      TextSpeak textSpeak = new TextSpeak(); 
      textSpeak.Abreviated = TxtSpk[0]; 
      textSpeak.Expanded = TxtSpk[1]; 
      return textSpeak; 
     } 
    } 
} 
-1

你只需要導入類ReadFromCS的命名空間,這是你的情況ELMFS班上WPF窗口是這樣的:

using ELMFS; 

接下來,功能ReadCSV需要的屬性內部,應該返回一個列表,像這樣(和刪除未使用的參數):

internal static List<TextSpeak> ReadCSV() { 
       return File.ReadAllLines(@"C:\textwords.csv") 
      .Skip(1) 
      .Select(t => TextSpeak.FromCsv(t)) 
      .ToList(); 

而且使課堂火星文像大衆的變量這個:

public string Abreviated; 
public string Expanded;