0

私はこれを持っています:

string curr = "";
if (emails.SelectedItem != null)
{
  for (int i = 0; i <= 19; i++)
  {
    curr = (emails.SelectedItem.ToString()[i] + "." + 
            emails.SelectedItem.ToString()[i + 1]);
    clone.Items.Add(curr);
  }
}

ただし、実行するたびに、「インデックスが配列の範囲外でした」というエラーが表示されます。

なんで?修正は何ですか?

また、残りの文字列 (i + 1 だけでなく) を追加して複製するにはどうすればよいですか?

コードの説明:

単語の 1 文字の後にピリオド (.) を挿入してから、クローンに追加しようとしています。その後、2文字目の後にピリオドを追加したい、クローンに追加したい、3文字目の後にピリオドを追加したい、など...

しかし、私はそれをしたくありませんt.h.i.s.i.s.t.h.e.n.a.m.e。一度に1つのピリオドだけにしたいのです。

次のようになります。

a.ntmatter
an.timatter
ant.imatter
anti.matter
など...

4

2 に答える 2

3
if (emails.SelectedItem != null)
{
    var item = emails.SelectedItem.ToString();
    for (int i = 1; i < item.Length; i++)
    {
         clone.Items.Add(item.Insert(i, "."));
    }
}
于 2012-09-01T17:00:19.257 に答える
0

これを試して

if (emails.SelectedItem != null) {
    string text = emails.SelectedItem.ToString();
    for (int i = 1; i < text.Length; i++) {
        string textWithPeriod = text.Substring(0, i) + "." + text.Substring(i);
        clone.Items.Add(textWithPeriod); 
    }
}
于 2012-09-01T17:02:43.120 に答える