/// <summary> /// 移設対象 /// </summary> private void Sample() { #if false // -------------------------------------------------- // 結合 // -------------------------------------------------- // Create Sample Data var sampleData002 = new DataFactory <SampleData002>().Create(); // Join (Nullがあると結合できない) Console.WriteLine("\nJoin(sampleData001_02, x => x.LinkId, y => y.LinkId, (x, y))の結果を表示します。"); var sampleData001_02 = sampleData001.Where(x => x != null && x.LinkId != null); foreach (var sample in sampleData002.Join(sampleData001_02, x => x.LinkId, y => y.LinkId, (x, y) => new { y.LinkId, x.Comment })) { Console.WriteLine($"sampleData002.Join(sampleData001_02...) LinkId:{sample.LinkId} Comment : {sample.Comment}"); } // GroupJoin Console.WriteLine("\nsampleData002.GroupJoin(sampleData001_02, outer => outer.LinkId...)の結果を表示します。"); var linkIds = sampleData002.GroupJoin( sampleData001_02, outer => outer.LinkId, inner => inner.LinkId, (outer, IdCollection) => new { LinkId = outer.LinkId, Ids = IdCollection }); foreach (var sample in linkIds) { Console.WriteLine($"sampleData002.GroupJoin(sampleData001...) LinkId:{sample.LinkId}"); foreach (var id in sample.Ids) { Console.WriteLine($" Id:{id.Id}"); } } // Concat Console.WriteLine("\nsampleData002.Concat(sampleData002_02)の結果を表示します。"); var sampleData002_02 = sampleData002.Select(x => { return(new SampleData002 { LinkId = x.LinkId * 2, Comment = x.Comment + " : Modify" }); }); foreach (var sample in sampleData002.Concat(sampleData002_02)) { Console.WriteLine($"sampleData002.Concat(sampleData002_02) LinkId:{sample.LinkId} Comment:{sample.Comment}"); } // Zip foreach (var sample in sampleData002.Zip(sampleData002_02, (outer1, outer2) => outer1.Comment + "+" + outer2.Comment)) { Console.WriteLine($"sampleData002.Zip(sampleData002_02, (outer1, outer2) => outer1.Comment ...) Comment:{sample}"); } // DefaultIfEmpty Console.WriteLine("\nsampleData001.DefaultIfEmpty()の結果を表示します。"); foreach (var sample in sampleData001.DefaultIfEmpty()) { Console.WriteLine($"sampleData001.DefaultIfEmpty() Id:{sample?.Id} Comment:{sample?.LinkId}"); } // -------------------------------------------------- // 変換 // -------------------------------------------------- // OfType Console.WriteLine("\nsampleData001.OfType<int>()の結果を表示します。"); foreach (var sample in sampleData001.Select(x => x?.Id).OfType <int>()) { Console.WriteLine($"sampleData001.Select(x => x?.Id).OfType<int>() Id:{sample}"); } // Cast Console.WriteLine("\nsampleData001.Cast<int>()の結果を表示します。"); try { foreach (var sample in sampleData001.Where(x => x != null).Select(x => x.LinkId).Cast <string>()) { Console.WriteLine($" sampleData001...Cast<string>() LinkId(string):{sample}"); } } catch { Console.WriteLine("sampleData.Where(x => x != null)...に、Castできない要素が含まれるので、Exceptionが発生します。"); } // ToArray Console.WriteLine("\nsampleData002.Select(x => x.LinkId).ToArray()の結果(型名)を表示します。"); var sampleData002ToArray = sampleData002.Select(x => x.LinkId).ToArray(); Console.WriteLine($"Type of sampleData002ToArray : {sampleData002ToArray.GetType().Name}"); // ToDictionary Console.WriteLine("\nsampleData002.ToDictionary()の結果を表示します。"); foreach (var sample in sampleData001.Where(x => x != null && x.LinkId != null).ToDictionary(x => x.Id, y => y.LinkId)) { Console.WriteLine($"sampleData001.ToDictionary() Key(Id):{sample.Key} Value(LinkId) : {sample.Value}"); } // ToList Console.WriteLine("\nsampleData001.ToList()の結果(型名)を表示します。"); var sampleData001ToList = sampleData002.ToList(); Console.WriteLine($"Type of sampleData001ToList ; {sampleData001ToList.GetType().Name}"); // ToLookup Console.WriteLine("\nsampleData002.ToLookup()の結果を表示します。"); foreach (var sample in sampleData002.ToLookup(x => x.LinkId)) { Console.WriteLine($"Key : {sample.Key}"); foreach (var item in sample) { Console.WriteLine($" Value : LinkId : {item.LinkId} Comment : {item.Comment}"); } } // ToDo:AsEnumerable Console.WriteLine("\nint[] {1,2,3} => AsEnumerable()の結果を表示します。"); int[] arrayOfInt = new int[] { 1, 2, 3 }; foreach (var item in arrayOfInt.AsEnumerable()) { Console.WriteLine($"Value : {item}"); } // -------------------------------------------------- // sampleDataの表示 // -------------------------------------------------- // sampleData001の表示 Console.WriteLine("\nsampleData001を表示します。"); foreach (var data in sampleData001) { Console.WriteLine($"sampleData001.Id:{data?.Id} LinkId:{data?.LinkId}"); } // sampleData002の表示 Console.WriteLine("\nsampleData002を表示します。"); foreach (var data in sampleData002) { Console.WriteLine($"sampleData001.Id:{data.LinkId} LinkId:{data.Comment}"); } #endif }