[C#] C #에서 디스크에 쓰지 않고 문자열에서 TextReader 개체를 만들려면 어떻게해야합니까?

A Fast CSV Reader 를 사용하여 붙여 넣은 텍스트를 웹 페이지에 구문 분석하고 있습니다. Fast CSV 리더에는 TextReader 개체가 필요하며 내가 가진 것은 문자열뿐입니다. 즉석에서 문자열을 TextReader 개체로 변환하는 가장 좋은 방법은 무엇입니까?

감사!

업데이트-샘플 코드-원본 샘플에서 새 StreamReader는 “data.csv”라는 파일을 찾고 있습니다. TextBox_StartData.Text를 통해 제공하고 싶습니다.

아래 코드를 사용하면 컴파일되지 않습니다.

        TextReader sr = new StringReader(TextBox_StartData.Text);
        using (CsvReader csv = new CsvReader(new StreamReader(sr), true))
        {
            DetailsView1.DataSource = csv;
            DetailsView1.DataBind();
        }

new StreamReader(sr)이 일부 잘못된 인수가 나에게 말한다. 어떤 아이디어?

대체 접근 방식으로 다음을 시도했습니다.

        TextReader sr = new StreamReader(TextBox_StartData.Text);
        using (CsvReader csv = new CsvReader(sr, true))
        {
            DetailsView1.DataSource = csv;
            DetailsView1.DataBind();
        }

하지만 Illegal characters in path Error.TextBox_StartData.Text의 문자열 샘플은 다음과 같습니다.

Fname\tLname\tEmail\nClaude\tCuriel\tClaude.Curiel@email.com\nAntoinette\tCalixte\tAntoinette.Calixte@email.com\nCathey\tPeden\tCathey.Peden@email.com\n

이것이 올바른 접근 방식이라면 어떤 아이디어가 있습니까? 도와 주셔서 다시 한 번 감사드립니다!



답변

System.IO.StringReader 사용 :

using(TextReader sr = new StringReader(yourstring))
{
    DoSomethingWithATextReader(sr);
}


답변

StringReader을 상속 하는 클래스를 사용합니다 TextReader.


답변

StringReader를 원합니다.

var val = "test string";
var textReader = new StringReader(val);


답변

StringReader 되는TextReader ( StreamReader스트림로부터도하지만 독서를한다). 따라서 첫 번째 예제를 사용하여 먼저 CsvReadera를 생성하려고 시도 하는 대신 다음을 생성 StreamReader합니다.

TextReader sr = new StringReader(TextBox_StartData.Text);
using(CsvReader csv = new CsvReader(sr, true))
{
  DetailsView1.DataSource = csv;
  DetailsView1.DataBind();
}


답변

StringReader 클래스를 사용하기 만하면됩니다 . TextReader에서 상속됩니다.


답변

대한 설명서를TextReader 보면 두 개의 상속 클래스가 표시됩니다. 그리고 그들 중 하나는 StringReader당신이 원하는 것을 정확히하는 것 같습니다.


답변