社員番号とかが書いたCSVがあって、ClassEmployeeInfoクラスを継承して社員番号と氏名と年齢が出力できるようにという課題です。
C#に慣れてなくて書き方がよくわかりません。どのようにすればいいのか教えていただきたいです
1.csvからの値抽出クラス
class ClassEmployeeInfo { /// <summary> /// 社員情報構造体 /// </summary> public struct StEmployeeInfo { /// <summary> /// 社員番号 /// </summary> internal string EmployeeNo; /// <summary> /// 氏名 /// </summary> internal string EmployeeName; /// <summary> /// 生年月日 /// </summary> internal DateTime Birthday; /// <summary> /// 有効/無効 /// </summary> internal bool Enable; } /// <summary> /// 社員情報リスト /// </summary> private List<StEmployeeInfo> pgEmployees; /// <summary> /// デフォルトコンストラクタ /// </summary> public ClassEmployeeInfo() { pgEmployees = new List<StEmployeeInfo>(); } /// <summary> /// 社員情報の追加 /// </summary> /// <param name="_EmployeeInfo">社員情報</param> protected void AddEmployeeInfo(StEmployeeInfo _EmployeeInfo) { var ret = pgEmployees.AsEnumerable().Where(x => x.EmployeeNo == _EmployeeInfo.EmployeeNo); if (ret.Count() > 0) throw new EWarningException($"社員番号{_EmployeeInfo.EmployeeNo}が重複しています。"); pgEmployees.Add(_EmployeeInfo); } /// <summary> /// 社員情報の更新 /// </summary> /// <param name="_EmployeeInfo">社員情報</param> protected void UpdateEmployee(StEmployeeInfo _EmployeeInfo) { for (var i = 0; i < pgEmployees.Count; i++) { if (pgEmployees[i].EmployeeNo == _EmployeeInfo.EmployeeNo) pgEmployees.RemoveAt(i); } pgEmployees.Add(_EmployeeInfo); } /// <summary> /// 社員情報の削除 /// </summary> /// <param name="_EmployeeNo"></param> protected void DeleteEmployee(string _EmployeeNo) { for (var i = 0; i < pgEmployees.Count; i++) { if (pgEmployees[i].EmployeeNo == _EmployeeNo) pgEmployees.RemoveAt(i); } } /// <summary> /// 社員情報構造体配列の取得 /// </summary> /// <param name="_EmployeeNo">社員番号配列</param> /// <returns></returns> protected StEmployeeInfo[] GetEmployeeInfos(string[] _EmployeeNo) { var ret = pgEmployees.AsEnumerable().Where(x => _EmployeeNo.Contains(x.EmployeeNo)).ToList<StEmployeeInfo>(); return ret.ToArray(); } /// <summary> /// 社員情報の取得 /// </summary> /// <param name="_EmplyeeNo">社員番号</param> /// <returns></returns> protected StEmployeeInfo GetEmployeeInfo(string _EmplyeeNo) { var ret = pgEmployees.AsEnumerable().Where(x => x.EmployeeNo == _EmplyeeNo).ToList<StEmployeeInfo>(); if (ret.Count ==0) throw new EWarningException($"社員番号{_EmplyeeNo}の社員は存在しません。"); return ret[0]; } }
}
2.自分で作ったイテレータークラス
public class ClassEmployeeInfo : Employee
{
Console.WriteLine("社員番号は{0}"です,_EmployeeNo);
}
}
}
イテレーターの書き方も怪しいのでよろしくお願いします。
怪しいというレベルじゃなく、何も知りませんよね?
レベル上げをせずボス戦に挑むタイプの人ですか?
課題なら授業で習った知識で回答できるでしょ。
ここで質問する話じゃない。
書き方とかろくに教えてもらえず概念だけ説明されてこれ作れって感じです
不当だと思うなら作れと言った人の上司に相談すればいい。
https://zenn.dev/zuishin/articles/686c8f80cd21a6
とりあえず読んでみてこの質問の何が悪いか自問自答するところから始めてもらえますかね?
https://teratail.com/help/question-tips
https://teratail.com/help/avoid-asking
すみませんでした。一人で頑張ります
>C#に慣れてなくて
慣れてる言語なら書けるのでしょうか?
> 書き方とかろくに教えてもらえず概念だけ説明されてこれ作れって感じです
皆そうです。
つか、常に受け身な人ほどそういうこと、言うよね。
特に趣味&独学だとそんなことは言ってられません。
独学やっている人が「誰も手取り足取り教えてくれないからわからない」ってなりますかね?
つまり単なる甘え。
昔ならいざ知らず、今やネットでググればいくらでも解説はついているし、
公式も出していたりする。(特にC#)
常に受け身だから「できるわけない」です。
それに、コードも野ざらしで提示されている。
これでは『読まなくていい』と言っているようなもの。
回答者からすれば非常に読みづらい。
長文を改行無し、すべてひらがなで、句読点のようなものも一切ない。
読みやすいでしょうか。
そういうレベルです。
あなたの回答
tips
プレビュー