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

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

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

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

Q&A

解決済

3回答

20984閲覧

C# 独自クラスを使い、Listに追加する方法

okiasu

総合スコア14

C#

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

0グッド

0クリップ

投稿2017/05/22 12:59

###独自クラスを使い、Listに追加する方法がわかりません。
下記のように、既にあるlistを独自クラスを使ったlistへの変換で、
可能な限り、if、foreachなど、分岐や繰り返しで処理したいのですが、
良い方法はないでしょうか。

###ソースコード

class Person { public string Name; public string Gender; public Person(string name, string gender) { this.Name = name; this.Gender = gender; } } class Program { static void Main(string[] args) { // 既にあるlist List<string> list = new List<string>(); list.Add("E 女"); list.Add("F 女"); list.Add("G 男"); list.Add("H 男"); list.Add("A 女"); list.Add("B 男"); list.Add("C 女"); list.Add("D 男"); //独自クラスを使用したlistへ List<Person> People = new List<Person>(); foreach (string s1 in list) { if (s1.Contains(list[0])) { People.Add(new Person("E", "女")); } else if (s1.Contains(list[1])) { People.Add(new Person("F", "女")); } else if (s1.Contains(list[2])) { People.Add(new Person("G", "男")); } else if (s1.Contains(list[3])) { People.Add(new Person("H", "男")); } else if (s1.Contains(list[4])) { People.Add(new Person("A", "女")); } else if (s1.Contains(list[5])) { People.Add(new Person("B", "男")); } else if (s1.Contains(list[6])) { People.Add(new Person("C", "女")); } else if (s1.Contains(list[7])) { People.Add(new Person("D", "男")); } } } }

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

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

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

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

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

guest

回答3

0

C#

1var personList = list.Select(s => s.Split(' ')) 2 .Select(a => new Person(a[0], a[1])) 3 .ToList(); 4 5foreach (var p in personList) 6 Console.WriteLine($"{p.Name} {p.Gender}"); 7 8/* 9E 女 10F 女 11G 男 12H 男 13A 女 14B 男 15C 女 16D 男 17*/

投稿2017/05/22 13:23

編集2017/05/22 13:25
root_jp

総合スコア4666

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

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

0

ベストアンサー

String.Split メソッド
スペースで分割してPersonクラスに入れればよいかと

投稿2017/05/22 13:14

YAmaGNZ

総合スコア10242

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

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

okiasu

2017/05/22 23:58

ありがとうございます! 試してみたのですが、 Splitで分割し、EはNameへ 女はGenderへ格納する方法が わかりません。 宜しければ、ご教授いただけないでしょうか?
YAmaGNZ

2017/05/23 07:02

Splitで分割する方法が分からないのでしょうか? それとも、分割したデータをPersonクラスへ格納する方法が分からないのでしょうか?
okiasu

2017/05/23 07:43

すみません。説明不足でした。 分割したデータをPersonクラスへ格納する方法がわかりません。
YAmaGNZ

2017/05/23 11:23

定数での格納と変数での格納は何ら変わりませんよ string[] splitdata; //splitの結果が入るとする People.Add(new Person(splitdata[0], splitdata[1])); でいいのでは?
okiasu

2017/05/23 15:34

なるほど、定数でも変数でも変わらないんですね! ありがとうございます。 早速、試してみます!
guest

0

私なら Person をこうします。

C#

1enum Gender 2{ 3,4} 5class Person 6{ 7 public string Name { get; private set; } 8 public Gender Gender { get; private set; } 9 public Person(string name, Gender gender) 10 { 11 Name = name; 12 Gender = gender; 13 } 14 public static Person Parse(string s) 15 { 16 var args = s.Split(' ').ToArray(); 17 if (args.Length != 2) throw new ArgumentException(); 18 return new Person(args[0], (Gender)Enum.Parse(typeof(Gender), args[1])); 19 } 20 public override string ToString() 21 { 22 return string.Format("{{{0},{1}}}", Name, Gender); 23 } 24}

投稿2017/05/22 13:14

Zuishin

総合スコア28660

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問