2017-11-03 26 views
-2

CSVファイルの値を2つの列で保存する場合、次のクラスがあります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オブジェクトを返す必要があります(または、他の場所ではリストを使用することはできません)。

第2に、TextSpeakクラスは、クラス外のメンバ変数にアクセスできるようにプロパティを持つ必要があります。

I.e.このような何か作業をする必要があります:あなたはこのようなWPFウィンドウのクラスにあなたのケースELMFSであるクラスReadFromCSの名前空間、インポートする必要が

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

using ELMFS; 

次に、機能ReadCSV属性は内部必要とこのように、リストを返す(および未使用の引数を削除する)必要があります。

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

はまたのようなクラスTextSpeakの公共の変数を作りますこれは:

public string Abreviated; 
public string Expanded; 
関連する問題