「LINQ - 拡張メソッド一覧」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
編集の要約なし
94行目: 94行目:
  </source>
  </source>
<br><br>
<br><br>
== 集計 ==
== 集計 ==
<center>
<center>
138行目: 139行目:
  Console.WriteLine(source.Sum(e => Math.Pow(e - ave, 2)) / source.Count());
  Console.WriteLine(source.Sum(e => Math.Pow(e - ave, 2)) / source.Count());
  // → 4.484375
  // → 4.484375
</source>
<br><br>
== ソート ==
<center>
{| class="wikitable"
|-
! メソッド名 !! 機能
|-
| OrderBy || 昇順にソートしたシーケンスを返す。
|-
| OrderByDescending || 降順にソートしたシーケンスを返す。
|-
| ThenBy || ソートしたシーケンスに対し、キーが等しい要素同士を昇順にソートしたシーケンスを返す。
|-
| ThenByDescending || ソートしたシーケンスに対し、キーが等しい要素同士を降順にソートしたシーケンスを返す。
|-
| Reverse || 逆順にソートしたシーケンスを返す。
|}
</center>
<source lang="c#">
var source = new[] {
    new{Name = "C#", Age = 11},
    new{Name = "Java", Age = 16},
    new{Name = "Groovy", Age = 8},
    new{Name = "Scala", Age = 8},
};
Console.WriteLine(source.OrderBy(e => e.Age).ToResult());
// → {{ Name = Groovy, Age = 8 },
//    { Name = Scala, Age = 8 },
//    { Name = C#, Age = 11 },
//    { Name = Java, Age = 16 }}
Console.WriteLine(source.OrderByDescending(e => e.Age).ToResult());
// → {{ Name = Java, Age = 16 },
//    { Name = C#, Age = 11 },
//    { Name = Groovy, Age = 8 },
//    { Name = Scala, Age = 8 }}
Console.WriteLine(source.OrderBy(e => e.Age).ThenBy(e => e.Name.Length).ToResult());
// → {{ Name = Scala, Age = 8 },
//    { Name = Groovy, Age = 8 },
//    { Name = C#, Age = 11 },
//    { Name = Java, Age = 16 }}
Console.WriteLine(source.OrderBy(e => e.Age).ThenByDescending(e => e.Name.Length).ToResult());
// → {{ Name = Groovy, Age = 8 },
//    { Name = Scala, Age = 8 },
//    { Name = C#, Age = 11 },
//    { Name = Java, Age = 16 }}
Console.WriteLine(source.Reverse().ToResult());
// → {{ Name = Scala, Age = 8 },
//    { Name = Groovy, Age = 8 },
//    { Name = Java, Age = 16},
//    { Name = C#, Age = 11 }}
  </source>
  </source>
<br><br>
<br><br>
匿名利用者

案内メニュー