各要素を文字列配列Joe, Ben, Carl
に個別の変数として格納するにはどうすればGuestA
がJoe、GuestB
がBen、GuestC
が辞書なしでCarlですか?変数がアルファベット順に表示されていることに注意してください。配列内の各値に対して個別の変数を生成する
答えて
あなたがGuestA
、GuestB
、およびすでに宣言GuestC
を持っていると仮定すると、あなたはこのようにリフレクションを使用したい:
private string GuestA;
private string GuestB;
private string GuestC;
private void button1_Click(object sender, EventArgs e)
{
string variableName;
string[] values = {"Joe", "Ben", "Carl" };
for(int i = 0; i < values.Length; i++)
{
variableName = "Guest" + Convert.ToChar(65 + i).ToString();
System.Reflection.FieldInfo fi = this.GetType().GetField(variableName, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
if (fi != null)
{
fi.SetValue(this, values[i]);
}
}
}
を私は、これはあなたが使用するので、あなたが持っている非常にものではありません疑うけどあなたのタイトルに "Generate"という単語があります。
私はあなたが十分に近いと思います。誰かが不思議に思っていた場合は、私が追加しようとしていた隠れたレイヤーごとに変数を生成するマシン学習APIを作成しようとしていたため、配列要素ごとに別々の変数を生成したかったのです。これが混乱を解消することを願っています。 – ComputersAreCool
これを行う理由はわかりませんが、このコードは文字通り取られた場合、あなたの質問に答えます。
string[] list = new string[] {"Joe","Ben","Carl"};
string GuestA = list[0];
string GuestB = list[1];
string GuestC = list[2];
何かが、あなたが正しく表現するのに問題があるという追加の要件があることがわかります。
私はOPの意味は、これを動的に行うことだと思います。例えば。 'GuestZ'に' GuestA'という名前の26の変数を生成します。しかし、どのような理由が必要なのかは分かりません。 –
リファレンス型のような文字列を使用することはできませんが、演算子のオーバーロードによって参照ビヘイビアをシミュレートできますが、この場合、代入演算子をオーバーロードすることができません。しかし、私はあなたがGuest guestD = tempGuest = "Joe Ho";
(これについてはわからない)のような割り当てを試すことができると思います。
public class ReferencedStringExample
{
public void Wrong()
{
string GuestA = "Joe",
GuestB = "Ben",
GuestC = "Carl";
var array = new string[]
{
GuestA,
GuestB,
GuestC
};
GuestA = "Joe Ho";
Debug.Assert(GuestA == array[0]);
}
public void Right()
{
Guest GuestA = "Joe",
GuestB = "Ben",
GuestC = "Carl";
var array = new Guest[]
{
GuestA,
GuestB,
GuestC
};
GuestA.Val("Joe Ho");
Debug.Assert(GuestA == array[0]);
Debug.Assert(GuestA == "Joe Ho");
GuestA = "Joe Ho";
Debug.Assert(GuestA != array[0]);
Debug.Assert(GuestA == "Joe Ho");
}
public class Guest
{
string value;
public static implicit operator string(Guest g)
{
return g.value;
}
public static implicit operator Guest(string s)
{
return new Guest() { value = s };
}
public Guest Val(string s)
{
this.value = s;
return this;
}
public override bool Equals(object obj)
{
Guest guest = obj as Guest;
return guest.value == this.value;
}
public override int GetHashCode()
{
return (value ?? string.Empty).GetHashCode();
}
}
}
- 1. データフレーム内の各列を個別のデータフレームに変換する
- 2. 配列内の変数の真理値を生成する
- 3. パンダ内の別の列に個別の値に対して1列に共通の値を見つける
- 4. Oracle - 各列の個別の値(別個のカウントではない)
- 5. テキストファイルから配列を作成して各行を個別に呼び出す
- 6. reactjsを使用して配列の各値のテキストボックスを生成
- 7. 別の配列内の配列の値を対象としていますか?
- 8. 配列の各項目に対してmysqlクエリを生成します。
- 9. 各配列の値に一意の乱数を生成します
- 10. PHP - 別の配列の値から配列内の変数を設定する
- 11. 各行に対して、セル内の別の値と一致する列名の値を抽出します。
- 12. 各ループに対して、20より大きい別の配列
- 13. 配列内の各要素/整数に数値を加える
- 14. rand()を使用して配列内の数値を生成する方法
- 15. dplyrで別の変数の値に応じて各項目に対して別の関数を実行
- 16. 値をキーに、カウントを値として別の配列の値の数を持つ配列を作成する
- 17. 配列内の各ハッシュの各値にアクセスします
- 18. SQL各値の別個の行の数を取得する
- 19. 各列の個別のプロットを作成する
- 20. mysql配列をループし、変数に応じて内容が別の配列を作成する方法$
- 21. C#を使用して複数のSQLクエリに対して個別のSINGLE xmlを生成します。
- 22. 配列内の各値の出現数を計算する
- 23. パイソン - 混合配列内の値の各発生を見つける(整数、リスト)
- 24. char配列を別の配列に対してチェックするvb.net
- 25. 配列値を個々の変数に取り出す方法
- 26. R:配列ディメンションの各値に対してapplyの出力を結合する
- 27. 配列キー数値を別の値に変更する方法
- 28. 配列内の20個の数字のシーケンスを生成してソートする(Java用)
- 29. SQL列の個別の値を超える反復処理し、各値
- 30. ループ内の各プロットの個別のハンドル
これを動的に行うことについて話したら、なぜそれが必要でしょうか? –
[動的変数名の作成]の可能な複製(http://stackoverflow.com/questions/20857773/create-dynamic-variable-name) –
John Wuの答えがあなたが探しているものではなく、変数を自動的に作成したい、辞書を使用することで得られる利点は何ですか?あなたがそれらを作成することができたとしても、あなたはそのような変数にどのようにアクセスしますか? – john