これをグーグルで検索しましたが、答えが見つかりません。
基本的に、私は TextBox を持っています。テキストボックスを1行ずつ読みたい。私はこのコードを持っています:
string[] lst = txt.Split(new Char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
これはすべての行を分割しますが、変更したり読んだりすることはできません。どうすればいいですか?
lst.Length
配列内の要素の数が表示されます。それを超えて、何ができるようになりたいかについて、質問でより具体的にする必要があります。
あなたの問題はコードの中にあるのではなく、あなたの質問にあります。
あなたはそれをもっと示す必要があります、特にそのステートメントの後にlstがどのように使われるか。次のプロパティは、必要なものを提供します。
lst.Length //holds the number of strings in lst.
次の方法で各文字列にアクセスできます。
string valueInIndex_i = lst[i];
その内容を次のように繰り返すことができます。
foreach(string thisString in lst)
{
//do stuff with thisString
}
TextBox のMultiLine
プロパティが True に設定されていると思います。TextBox の行を簡単に取得できます
string[] lines = textBox1.Lines;
すでに改行文字で分割されています。次に、それを繰り返すことができます
for(int x=0; x<lines.Length; x++)
{
if(!string.IsNullOrEmpty(lines[0])
// process...
}
行を変更する必要がある場合は、 foreach を使用するよりも for を使用するループを使用することをお勧めします
string line = null;
using(var sr = new StringReader(txt))
while((line=sr.ReadLine()) != null)
Console.WriteLine(line)
私が正しく理解している場合は、行ごとに読む必要があります。これを試してください:
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");