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

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

新規登録して質問してみよう
ただいま回答率
85.35%
C#

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

3回答

747閲覧

複数列のデータを配列に格納して編集したい

KinD

総合スコア28

C#

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2021/04/09 09:00

前提・実現したいこと

下記のようなデータをいったん配列に取り込んだあと
ループなどで回して編集したいのですが、やり方がわかりません。

名前、国語、算数、理科、社会
Aくん、80、80、80、80
Bくん、80、80、80、80
Cくん、80、80、80、80

試したこと

行数が可変になるので
list配列を使うべきなのかと思い下記までは理解できたのですが
数字をどうやって格納していけばよいかわかりません

List<List<string>> cells = new List<List<string>>();
cells.Add(new List<string>());
cells[0].Add("Aくん");
cells[0].Add("Bくん");

List配列を使うべきではないかもしれませんが
どのような方法があるのでしょうか。
横列は固定数になります・

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

.net(c#)
windows visualstudio2019

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/04/09 09:18

元のデータはどこから来るのですか? CSV ファイルとか? それによって話が違ってくると思います。
guest

回答3

0

シンプルにやるなら「名前」と「国語」「算数」などの点数を持つプロパティを定義したクラスを作って、そのインスタンスをリストに突っ込めばできます。

これをヒントに自分で調べて考えてください。

投稿2021/04/09 09:12

gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

1行目とそれ以降の行を cells に持つと難しいコードができあがりますね。
解決方法は色々ありますが、私ならクラスにデータを格納して List で管理します。

C#

1public class TestResult { 2 public string StudentName { get; set; } 3 public int JapaneseScore { get; set; } 4 public int MathScore { get; set; } 5 public int ScienceScore { get; set; } 6 public int SocialStudiesScore { get; set; } 7}

C#

1List<TestResult> testResults = new List<TestResult>{ 2 new TestResult{ 3 StudentName = "Aくん", 4 JapaneseScore = 80, 5 MathScore = 80, 6 ScienceScore = 80, 7 SocialStudiesScore = 80, 8 }, 9 new TestResult{ 10 StudentName = "Bくん", 11 JapaneseScore = 80, 12 MathScore = 80, 13 ScienceScore = 80, 14 SocialStudiesScore = 80, 15 }, 16 new TestResult{ 17 StudentName = "Cくん", 18 JapaneseScore = 80, 19 MathScore = 80, 20 ScienceScore = 80, 21 SocialStudiesScore = 80, 22 } 23}; 24 25foreach(var result in testResults){ 26 Console.WriteLine($"{result.StudentName}の理科の点数は{result.ScienceAScore}点"); 27}

Dictionary クラスを使ってもありです。
とにかく、この手の処理は解決策がたくさん存在しますが、重要なのはシンプルであることです。
Simple Made Easy です。

投稿2021/04/09 09:22

BluOxy

総合スコア2663

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BluOxy

2021/04/09 09:23

(gentaro さんと回答が被ってしまいました)
KinD

2021/04/09 09:34

なるほど!とても分かりやすいです! ありがとうございます!
guest

0

どういうふうにデータを読むのかイマイチ不明ですが、
改行ごとに読み込んで、それをコンマで区切って配列にしてListにAddしていけばいいかと。

投稿2021/04/09 09:12

y_waiwai

総合スコア88051

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KinD

2021/04/09 09:35

ありがとうございます。確かしコンマで区切ってstringで入れるのもシンプルで分かりやすいですね ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問