13:35ありがとうございます。btnという記述が誤解を生んでいる気がしましたのでコードを書き直しました。実際の処理としては最初の画面でユーザーが言語選択をボタンで選択し、このとき日本語(ja)が選ばれれば次のページ(fruit選択ページ)で日本語テキストのボタンを表示させます。このとき、多次元連想配列を用意しておけば言語と選択項目を表すfruitを指定すればあとはループでバインドさせてボタンのテキストを書き換えできるはずです。最後のページでは、選択した内容を「日本語」+「選択した言語」で表示させる必要があるため、選択した内容をkey(この場合はappleやbanana)で持っておけば、あとからどの言語を呼び出す場合でも多次元連想配列から容易に取得できると考えました。この構造はおかしいでしょうか。多言語化の方法が別にあることは理解しましたが、そこはまた別の話として多次元連想配列からデータを取得するという構造に問題があるのであれば、どのように実装するのが一般的なのかが知りたいかったのですが、Dictionaryで多次元連想配列を生成することが特に問題なければその方法で実装しようと思います。ありがとうございます。btnという記述が誤解を生んでいる気がしましたのでコードを書き直しました。実際の処理としては最初の画面でユーザーが言語選択をボタンで選択し、このとき日本語(ja)が選ばれれば次のページ(fruit選択ページ)で日本語テキストのボタンを表示させます。このとき、多次元連想配列を用意しておけば言語と選択項目を表すfruitを指定すればあとはループでバインドさせてボタンのテキストを書き換えできるはずです。最後のページでは、選択した内容を「日本語」+「選択した言語」で表示させる必要があるため、選択した内容をkey(この場合はappleやbanana)で持っておけば、あとからどの言語を呼び出す場合でも多次元連想配列から容易に取得できると考えました。この構造はおかしいでしょうか。多言語化の方法が別にあることは理解しましたが、そこはまた別の話として多次元連想配列からデータを取得するという構造に問題があるのであれば、どのように実装するのが一般的なのかが知りたいかったのですが、Dictionaryで多次元連想配列を生成することが特に問題なければその方法で実装しようと思います。アプリであろうと、アプリケーションのインストール時点もしくは開始時点で言語を選択させ、以降は設定が変更されるまでそれを使うのが通常です。画面毎に言語を選択させたり、多言語のリソースをすべてオンメモリに持つようなことはあまりしません。キーは必要ありません。動けば勝ちという考え方もありますので、オブジェクト指向に慣れていないならとりあえずそれでやってみればいいのではないかと思います。使ってはいけないというのは、使ったらまずいのではなく、ちゃんと設計すれば使うような状況があまりないということにすぎませんから。アプリであろうと、アプリケーションのインストール時点もしくは開始時点で言語を選択させ、以降は設定が変更されるまでそれを使うのが通常です。画面毎に言語を選択させたり、多言語のリソースをすべてオンメモリに持つようなことはあまりしません。キーは必要ありません。動けば勝ちという考え方もありますので、オブジェクト指向に慣れていないならとりあえずそれでやってみればいいのではないかと思います。使ってはいけないというのは、使ったらまずいのではなく、ちゃんと設計すれば使うような状況があまりないということにすぎませんから。14:49fruit以外のページもあるのでそこは大丈夫です。PHPでは多次元連想配列を頻繁に使うので、c#の正しい設計や構造というものがまだはっきりとはわかっていませんが、リソースの件はその通りと思いますので使用言語によって分岐をかけてから配列生成する形にしてみようかと思います。fruit以外のページもあるのでそこは大丈夫です。PHPでは多次元連想配列を頻繁に使うので、c#の正しい設計や構造というものがまだはっきりとはわかっていませんが、リソースの件はその通りと思いますので使用言語によって分岐をかけてから配列生成する形にしてみようかと思います。キャンセル完了するlinkcheckベストアンサー+7「絶対ない」というのは意味不明ですが、質問者さんが例に挙げた多言語化の話なら、リソースをつかうので質問者さんが書いたソースのようなことは普通はしません。アプリでどのようにリソースを使って多言語するかの例を書いた記事をご参考に紹介します。コメントで「回答欄に案を書いておきます」と書きましたがそれを以下に書きます。「案」で、実際の目的によってはもっと適切な方法があるかもしれません。使って取得する方がすっきりしてますし、今時のやり方として自分的にはお勧めです。後でサンプルを回答欄に追記しておきます。・・・と書きましたがそれを以下に書きます。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:39移行という書き方が悪かったですね。PHPを最初に学び、新たにC#を学習しているという意味です。WebアプリではなくスマホアプリをC#で作成しようとしています。リソースについては確かにそうかもしれません。C#でどのように実現するのがよくわかりません。移行という書き方が悪かったですね。PHPを最初に学び、新たにC#を学習しているという意味です。WebアプリではなくスマホアプリをC#で作成しようとしています。リソースについては確かにそうかもしれません。C#でどのように実現するのがよくわかりません。C#でどのように実現するのがよくわかりません。質問に書いてある例では自分は多言語化の話しか想像できないので、多言語化以外のことで「どのように実現」という話をするのは難しいです。実装するにどうするかという話をしていただければ、何か案が出てくるかもしれません(出てこなかったらスミマセンが)。C#でどのように実現するのがよくわかりません。質問に書いてある例では自分は多言語化の話しか想像できないので、多言語化以外のことで「どのように実現」という話をするのは難しいです。実装するにどうするかという話をしていただければ、何か案が出てくるかもしれません(出てこなかったらスミマセンが)。11:28ぱっと思いついた例で申し訳ないのですが、仮に下記のようなデータをハードコーディングする場合にDictionaryで連想配列にして管理しようとしたのですが、URLのような記述を見かけ質問させていただいた次第です。//山田太郎?>ぱっと思いついた例で申し訳ないのですが、仮に下記のようなデータをハードコーディングする場合にDictionaryで連想配列にして管理しようとしたのですが、URLのような記述を見かけ質問させていただいた次第です。12:46回答欄に案を書いておきます。回答欄に案を書いておきます。いう書き方ができるのですね!私が知りたかった答えをいただけた気がします。一度この方法で書いてみたいと思います。私が知りたかった答えをいただけた気がします。一度この方法で書いてみたいと思います。使わない方がすっきりするかもしれません。合わせて検討ください。使わない方がすっきりするかもしれません。合わせて検討ください。14:52あとでIDを基にデータを呼びたい場合には、書いていただいた方法で良いように感じますがいかがでしょうか。あとでIDを基にデータを呼びたい場合には、書いていただいた方法で良いように感じますがいかがでしょうか。使って取得する方がすっきりしてますし、今時のやり方として自分的にはお勧めです。後でサンプルを回答欄に追記しておきます。使って取得する方がすっきりしてますし、今時のやり方として自分的にはお勧めです。後でサンプルを回答欄に追記しておきます。15:23ご丁寧な回答をいただきありがとうございます。参考にさせていただきます。ご丁寧な回答をいただきありがとうございます。参考にさせていただきます。15:37追記拝見しました。そのような書き方もできてしまうのですね。私も一目みて気に入ったのでLINQを使ったやり方で実装できるかやってみたいとおもいます。ここまでで私が求めていた回答をくださったSurferOnWww様をベストアンサーとさせていただきたいと思います。ありがとうございます。実装ができたあとで解決方法を記載したいと思います。そのような書き方もできてしまうのですね。私も一目みて気に入ったのでLINQを使ったやり方で実装できるかやってみたいとおもいます。ここまでで私が求めていた回答をくださったSurferOnWww様をベストアンサーとさせていただきたいと思います。ありがとうございます。実装ができたあとで解決方法を記載したいと思います。18:36すみません、実際に書いてみたのですが躓いてしまっております。質問に追記しましたので、ご意見いただけませんでしょうか。この実装方法がおかしい場合はご助言いただけますと助かります。すみません、実際に書いてみたのですが躓いてしまっております。質問に追記しましたので、ご意見いただけませんでしょうか。この実装方法がおかしい場合はご助言いただけますと助かります。そんなことはありません。使用する形になります。そのような構造になるデータ構造自体を見直そう、とはいえます。型を正しく宣言しなくてはなりません。ように「思い立ったから多次元連想配列でやっちゃえ」とはいかないわけです。データ構造を考えて処理しましょう、という話です。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:44ご回答ありがとうございます。わかっていないのですが、多次元連想配列にするにしても明確に型を指定してやればいいというわけではないのでしょうか?PHPでは質問のような書き方ができるのでデータの管理が1つの変数でできるのでわかりやすいのですが、C#ではどのように値を持たせるべきなのかが分かりません。ご回答ありがとうございます。PHPでは質問のような書き方ができるのでデータの管理が1つの変数でできるのでわかりやすいのですが、C#ではどのように値を持たせるべきなのかが分かりません。10:54だから、そこが「データ構造をきちんと考えましょう」という意味です。明確に型を指定してやるということは、イコール明確なデータ構造を提示することです。この例で言えば、本質的には多言語化であればこのような記述自体が要りません。多言語化にはこれとは別の(標準化された)方法があるので、何も自分でイチから実装する必要はありません。車輪を再発明しても意味は薄いのです。そこが「データ構造をきちんと考えましょう」という意味です。明確に型を指定してやるということは、イコール明確なデータ構造を提示することです。この例で言えば、本質的には多言語化であればこのような記述自体が要りません。多言語化にはこれとは別の(標準化された)方法があるので、何も自分でイチから実装する必要はありません。車輪を再発明しても意味は薄いのです。キャンセル完了するlink+6直接の回答ではないのですが、情報の探し方について。検索するとき、情報源の内容の確からしさを気にするといいと思います。誰が書いたか、いつ書かれたものか、どのような状況でかかれたものか、など。Diaryの記事などは、誰が書いたかも分からない、どのような事例かの記載も無い記事ですので、情報の確実性は落ちます。このような内容は、眉に唾して臨むべきかと思います。古来より曰く「嘘を嘘と見抜けないものにインターネットは難しい」というやつです。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。型付け制約の強い静的型付け言語です。静的型付け言語では、全く同じように扱えるものしか同じ型にしないのが原則です。例題では'btn1'と'りんご'は明らかに違う性質を持ったものですから、同じstring型として扱うのは避けるのが賢明です。違う用途のものを同じ配列に入れると面倒なので、連想配列だけではなく多次元配列を使うことも稀です。C#には便利なコレクションが沢山あるので、配列を使うこと自体が多くはありません。結果として、科学や技術系の計算などで大量の数値を扱う場合を除いて多次元配列の出番はなくなるのです。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。11:37btn1はあくまでデータを取得する際のkeyとして利用したいだけなのでstring型を指定しますが、string型だとおかしいのですか?連想配列だけではなく多次元配列を使うことも稀ということであれば、質問の処理をC#ではどのようにデータを持たせ、どのように取得すべきでしょうか。連想配列だけではなく多次元配列を使うことも稀ということであれば、質問の処理をC#ではどのようにデータを持たせ、どのように取得すべきでしょうか。11:52Zuishinさんがとてもいい回答をしてますので、参考にしてください。Zuishinさんがとてもいい回答をしてますので、参考にしてください。キャンセル完了するlink+5こんにちは。そのリンク先の人が「絶対にない」と書いている方法を使えば可能です。見かけないのは事実ですが、必要なら使っても問題ない方法と思います。(C#に不慣れな段階でそのような記載を見かけたのならば、他の人の意見を聞くのは良いことと思います。)しかし、多言語化対応をハードコーディングするのはあまり好ましい方法ではないと思います。多言語化の手法は大きく2つの流れがあると思います。マイクロソフト方式とgettext方式です。個人的にはgettext方式が好きですね。マイクロソフト方式は複数の仕組みがあるし、他のOSで使えない(使いづらい?)ので。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:49ご回答ありがとうございます。多言語化の方法をご提示いただいたのはありがたいのですが、私が知りたいのは多言語化の方法ではなく、まさしくハードコーディングする場合のデータの持たせ方です。よい方法をご存じであれば教えていただけますと助かります。ご回答ありがとうございます。多言語化の方法をご提示いただいたのはありがたいのですが、私が知りたいのは多言語化の方法ではなく、まさしくハードコーディングする場合のデータの持たせ方です。よい方法をご存じであれば教えていただけますと助かります。11:21「そのリンク先の人が「絶対にない」と書いている方法」で十分と思いますよ。「そのリンク先の人が「絶対にない」と書いている方法」で十分と思いますよ。ありがとうございます。ありがとうございます。頂いたご意見への回答は行っておりません。