1

@Something で表されるすべての変数を置き換える際に、Excel スプレッドシート テンプレートの内容を検索しています。

私はすべての変数名にコードを付けています。それらを文字列に置き換える方法を探しています。

例:

私の名前は@名前です

私はそれがなりたい:

私の名前はジョンです。


私のコードは説明しました:

私は保持する構造体を保持する配列を持っています:

TagPointer: これは私の変数 @name です。TagValue: これは John という名前になります

ここで、変数がどこにあるかのインデックスを取得でき、元の文字列の Comp を取得できます。@Something を置き換える方法がわかりません。

int testnum;
if (Comp != "null")
{
    if (Comp.IndexOf(ArrayNode[i].TagPointer) != -1)
    {
        testnum = Comp.IndexOf(ArrayNode[i].TagPointer);                          
    }
}
4

7 に答える 7

12

使用string.Format()string.Replace()不便あり

string value = "John";
string result = string.Format("My name is {0}", value);
于 2012-08-06T08:12:51.047 に答える
5

FormatWith拡張子を見たことがありますか?

それを使用すると、次のように書くことができます。

Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);
于 2012-08-06T08:30:00.727 に答える
5

何か不足していなければ、 string.replace関数を使用できませんか?

次のようなことができます。

foreach (var tag in ArrayNode)
{
  Comp = Comp.Replace(tag.TagPointer, tag.TagValue);
}
于 2012-08-06T08:12:20.220 に答える
4

ieを使用しない理由

string name = "Giusepe";
string _tmp = "My name is @Name";
_tmp = _tmp.Replace("@Name", name);
于 2012-08-06T08:12:39.940 に答える
2

配列を反復処理し、を使用し.Contains()て存在するタグを確認し、を使用し.Replace()てタグを実際の値に置き換えることができます。

于 2012-08-06T08:14:10.253 に答える
1

これが欲しいですか:

string a = "@Something";
a = a.Replace("@somethig", Value);

于 2012-08-06T08:13:48.817 に答える