• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ReadOnlyCollectionで二次元配列)

C#でReadOnlyCollectionを使っての定義についての質問

このQ&Aのポイント
  • C#でReadOnlyCollectionを使っての定義についての質問です。
  • 2次元配列の定数を定義したいが、うまく定義できない。
  • ヘッダファイルのように別ファイルに記述して全体に共有したい。

質問者が選んだベストアンサー

  • ベストアンサー
  • hoge1229
  • ベストアンサー率29% (58/194)
回答No.1

ReadOnlyCollectionは実装なのでstringの配列からはキャストできないかと。 ReadOnlyCollectionでやりたいなら下記のような感じになるんじゃないんですかね。 var Lev1 = new ReadOnlyCollection<string>(new List<string> {"101", "102", "103"}); var Lev2 = new ReadOnlyCollection<string>(new List<string> {"201", "202", "203"}); var Lev3 = new ReadOnlyCollection<string>(new List<string> {"301", "302", "303"}); var Hotel = new ReadOnlyCollection<ReadOnlyCollection<string>>( new List<ReadOnlyCollection<string>> {Lev1, Lev2, Lev3}); もしくは、下記のようにIReadOnlyCollectionにキャストし、読み取り操作しかできないようにするとかですかね。 IReadOnlyCollection<IReadOnlyCollection<string>> coll2 = new List<IReadOnlyCollection<string>> { new string[] {"1", "2", "3"}, new string[] {"4", "5", "6"}, new string[] {"7", "8", "9"} };

condor2
質問者

お礼

ありがとうございます 定義部分のエラーがなくなり いけそうな感じになってきたのですが IReadOnlyCollectionについていくら検索しても foreach で値を全部出すものばかりで たとえば ボタンにルームナンバーを表示するのに e.Graphics.DrawString( roomNo[1, 4], <=この部分 new Font("Arial", 18, FontStyle.Bold), brush, btn.ClientRectangle, sf ); みたいな感じで使う場合 どのようにすれば実現できるでしょうか? さらに質問で大変申し訳ないですが 教えていただけると助かります

condor2
質問者

補足

お礼コメントの自己回答です こんな感じでやってうまくいきました e.Graphics.DrawString( roomNo.ElementAt(1).ElementAt(4), new Font("Arial", 18, FontStyle.Bold), //フォント brush, btn.ClientRectangle, sf ); 無事解決です ありがとうございました

関連するQ&A

専門家に質問してみよう