-1

これをグーグルで検索しましたが、答えが見つかりません。

基本的に、私は TextBox を持っています。テキストボックスを1行ずつ読みたい。私はこのコードを持っています:

string[] lst = txt.Split(new Char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);

これはすべての行を分割しますが、変更したり読んだりすることはできません。どうすればいいですか?

4

5 に答える 5

1

lst.Length配列内の要素の数が表示されます。それを超えて、何ができるようになりたいかについて、質問でより具体的にする必要があります。

于 2013-01-31T23:29:22.790 に答える
0

あなたの問題はコードの中にあるのではなく、あなたの質問にあります。

あなたはそれをもっと示す必要があります、特にそのステートメントの後にlstがどのように使われるか。次のプロパティは、必要なものを提供します。

lst.Length //holds the number of strings in lst.

次の方法で各文字列にアクセスできます。

string valueInIndex_i = lst[i];

その内容を次のように繰り返すことができます。

foreach(string thisString in lst)
{
     //do stuff with thisString
}
于 2013-01-31T23:45:27.237 に答える
0

TextBox のMultiLineプロパティが True に設定されていると思います。TextBox の行を簡単に取得できます

string[] lines = textBox1.Lines;

すでに改行文字で分割されています。次に、それを繰り返すことができます

for(int x=0; x<lines.Length; x++)
{
    if(!string.IsNullOrEmpty(lines[0])
         // process...
}

行を変更する必要がある場合は、 foreach を使用するよりも for を使用するループを使用することをお勧めします

于 2013-01-31T23:30:58.090 に答える
0
string line = null;
using(var sr = new StringReader(txt))
    while((line=sr.ReadLine()) != null)
        Console.WriteLine(line)
于 2013-01-31T23:31:38.507 に答える
0

私が正しく理解している場合は、行ごとに読む必要があります。これを試してください:

string[] lines = TextBox.Text.Split(new char[] { '\n' });
foreach(string line in lines)
{
   // read 'line' variable
}

これにより、TexTbox に行の配列が取得されます。を使用して、インデックスでアクセスすることもできますlines[index]

プロパティを使用できLengthます。

int total = lst.Length;

カウントする文字を指定したい場合は、Count拡張メソッドを使用できます。

// add the Linq namespace.
using System.Linq;

int total = lst.Count(c => c == "c");
于 2013-01-31T23:28:07.457 に答える