献立の中からカツを探し出すプログラム(LINQ)
<はじめに>
今週の献立の中で何曜日のメニューがカツなのか気になって仕方がない時ありますよね?
そこで、IEnumerable
<プログラム>
class Program { static void Main(string[] args) { MySampleClass<string> mySampleInstance = new MySampleClass<string>(); mySampleInstance.Add("月:カレー"); mySampleInstance.Add("火:トンカツ"); mySampleInstance.Add("水:ラーメン"); mySampleInstance.Add("木:スパゲティ"); mySampleInstance.Add("金:メンチカツ"); Console.WriteLine("// 今週の献立は…"); //-------------------------------------------------- // foreachにてデータを取得 // foreach (var item in mySampleInstance) { Console.WriteLine(item); } //-------------------------------------------------- // LINQにてデータを取得 // var list = mySampleInstance.Where(p => p.Contains("カツ")).Select(p => p.Split(':')); Console.WriteLine("// カツの曜日は…"); foreach (var item in list) { Console.WriteLine(item[0] + "曜日"); } } } class MySampleClass<T> : IEnumerable<T> { //-------------------------------------------------- // クラス変数(List) // private List<T> myList = new List<T>(); //-------------------------------------------------- // 要素を追加 // public void Add(T tempItem) { myList.Add(tempItem); } //-------------------------------------------------- // IEnumerable<T>.GetEnumeratorメソッドを実装(必須) // public IEnumerator<T> GetEnumerator() { for (int i = 0; i < myList.Count; i++) { yield return myList[i]; } } //-------------------------------------------------- // IEnumerable.GetEnumeratorメソッドを実装(必須) // IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } }
<実行結果>
<まとめ>
IEnumerable