質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.78%

  • C#

    3905questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Visual Studio

    960questions

    Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

  • Xamarin

    254questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

  • XAML

    166questions

    XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

xamarinで配列の設定データを保存したい

解決済

回答 1

投稿 2017/03/20 20:43

  • 評価
  • クリップ 0
  • VIEW 354

masa246

score 3

前提・実現したいこと

初めてのスマホアプリ開発でvisual studioとxamarin.formsを用いてクロスプラットフォームアプリを作ろうとしています。アプリ内で用いる配列をアプリに保存して次回起動時もそれを読み込んで使用たいのですがどうすればよいのでしょうか?
例えば[組,出席番号,各種個人情報]といった配列を作って保存したいです。
削除することもあるので組を指定すればそれ以下の階層もまとめて削除したいので配列で保存できればと思いました。
また、多次元配列を別形式に変換して保存し、また配列に戻す方法があればそれでも大丈夫かと思います。
初歩的な質問だと思いますがどうかよろしくお願いします。

試したこと

「Application.Current.Properties[]」を使えば簡単にOS依存なく設定データを保存できることはわかったのですが、多次元配列を保存する方法がわかりません。
参考にさせていただいたサイトはこちらです。
また、一次元配列をコンマ区切りなどで文字列にしてそれを保存することができるというのはわかりますが、多次元配列となるとどうすればいいのかわかりません。

補足情報(言語/FW/ツール等のバージョンなど)

Xamarin.forms
C#
XAML
Visual Studio 2017
その他必要な情報がありましたらお伝えいただきたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

いろいろな方法があるのでこれが正解っていうのはない(と思う)ですが自分なら以下の感じにします

・データ数があらかじめ少ないとわかっているとき:Json形式の文字列として保存する
・上の場合以外(たとえばデータ数が不定の場合):データベースを使う(SQLiteやRealm)

「例えば[組,出席番号,各種個人情報]」という点からデータ数はそれなりに多くなりそうなのでデータベースを使うことをお勧めします

個人的にはRealmがお勧めですが今のところiOSとAndroidにしか対応してない(UWPはサポート予定)のでターゲットプラットフォーム次第です。
SQLiteならSQLite.Net-PCLが使えると思います。

投稿 2017/03/20 22:09

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2017/03/20 23:30

    ご回答ありがとうございます。

    割と簡単にアプリ自体にデータベースを導入することが出来るのですね。
    無知でお恥ずかしい限りです。

    よろしければ、SQLiteとRealmでは後者を推す理由をお教え頂けたらと思います。

    キャンセル

  • 2017/03/21 00:39

    多次元を表すのにデータベース上のデータをリレーション付けて管理することになりますが、それがRealmでは簡単に実装できる(RealmObjectのインスタンスにRealmObjectまたはIList<RealmObject>を設定できる)からです
    SQLiteでもリレーションは可能ですが紹介したパッケージも含めて.NETでリレーションにも対応したPCLなORMライブラリがない(少なくとも自分は実際に使えるものを知らない)ので簡単に実装できるRealmを推しました。

    もちろんSQL文を叩くとかでORMじゃなくてもいいとかなら、両方大差ないのでどちらでもいいと思います。

    (補足、SQLiteのリレーションにも対応したPCLなORMライブラリですが、ひょっとしたらEntityFramework CoreがXamarinにも対応してるかもしれないので、それならもしかして使えるかもしれないですが、それを試行(使えるかどうか試す)するのは(英語の文献すらごく少数という意味の)苦行的な意味でお勧めしないです)

    キャンセル

  • 2017/03/21 07:46

    わかりやすいご説明ありがとうございます。

    UWPはついでに出来ればいいなといった程度でしたのでRealmを調べて使ってみようと思います。

    本当にご丁寧にありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.78%

関連した質問

同じタグがついた質問を見る

  • C#

    3905questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Visual Studio

    960questions

    Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

  • Xamarin

    254questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

  • XAML

    166questions

    XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

閲覧数の多いC#の質問