コードの細かな書き方について質問です。
上記List<Transaction>transactionsがあります。
transactions内の、あるひとつのelement(例えばtransactionという変数でくくる)の中に、account.ToString()を見つけ出したいです。
質問1.var transaction などの変数をつくり、account.ToString()を抽出したいです。(使用メソッドは、Containsでいいのでしょうか。それとも、FirstOrDefaultでしょうか。)
その後、
- コンボボックス(ドロップダウンメニューのようなもの)の選択されたitem
- 前述のtransactions内にある任意の内のelement内のaccount.ToString()
1と2が同じである時(if(1==2){})、という条件設定が必要なのですが、どういう風に書けるでしょうか?
そこで質問2ですが、下記コードの日本語部分に該当するコードの書き方が知りたいです。
前回質問がコードの方向性的なざっくりした内容だったのですが、こちらはのちの具体的部分になるかと思います。まだ、場数をこなしていないため、コードの細かな書き方がわかりにくいです。よろしくお願いします。
C#
1if (Combobox1.SelectedItem.ToString().Equals(transactionsに含まれるaccount.ToString()を表すためのコード)) 2{ 3 //リスト表示 4 Listbox1.Items.Add(transactionsのパラメーターであるdate, transactionType,depAmountを表示させたいです。); 5}
簡単に言ってしまうと、上記if文のカッコ内は、コンボボックスの選択中のアイテム(口座タイプ、アカウントナンバー)と、ローカル変数であるaccount.ToString()(口座タイプ、アカウントナンバー)の照合です。
しかし、もっと言うと、アカウントナンバー自体は、BankAccountという親クラスにプロパティがあります。
var account = Combobox1.SelectedItem as BankAccount;このようにして、asオペレーターでBankAccountにあるプロパティのようにふるまわせています。
Transactionクラスはあくまで以下のプロパティしかもっておらず、BankAccountクラスとはアソシエーションの関係にあります…。
よって、BankAccount内のAccountNumberプロパティを直接照合させて使うこともできるはずなのですが(そのほうがややこしくなさそうです)、object.AccountNumberとするためには、オブジェクトが必要になりそうです。
C#
1namespace practice 2{ 3 [Serializable] 4 class Transaction 5 { 6 internal bool AccountNumber; 7 public double Amount { get; set; } 8 public DateTime Date { get; set; } 9 public string TransactionType { get; set; } 10 public List<BankAccount> BankAccounts { get; private set; } = new List<BankAccount>(); 11 12 13 // Constructors 14 public Transaction(DateTime date, string transactionType, double amount, string s) 15 { 16 Amount = amount; 17 Date = DateTime.Now; 18 TransactionType =transactionType ; 19 20 } 21 22 // Methods 23 public override string ToString() 24 { 25 return $"\n{Date} {TransactionType}: {Amount}SEK "; 26 }
クラス図のクラス名は、コード上では、Accout→BankAccount,History→Transactionとなっています。
回答1件
あなたの回答
tips
プレビュー