C# LINQ orderby句によるクエリ結果の並べ替え
クエリ実行結果の並べ替え(ソート)を行うときは、orderby句を使います。
orderby ソートキー 方法
並べ替えの順序は、
- ascending(昇順)
- descending(降順)
を指定することができます。デフォルトはascending(昇順)を指定することができます。デフォルトはascendingです。
以下を実行すると、配列の結果を昇順で並べ替えされて取得することができます。
static void Main(string[] args) { int[] nums = {22,38,3,-29,58,48,-96}; var sortedNums = from n in nums orderby n select n; foreach (int i in sortedNums) Console.WriteLine(i); Console.ReadLine(); }
クラスを作って、あるプロパティをselect句で取得することもできます。
以下はクラスのプロパティをLINQでselectする例です。
ちなみに、C#のコンソールアプリケーションですが、クリップボードに出力結果をコピーしています。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace ConsoleApplication1 { class Friend { public string Name { get; set; } public int Age { get; set; } public Friend(string name, int age) { this.Name = name; this.Age = age; } } class Program { [STAThread] static void Main(string[] args) { Friend[] friends = { new Friend("takashi",20), new Friend("ano",25), new Friend("kego", 28) }; var names = from entry in friends select entry.Name; StringBuilder sb = new StringBuilder(); foreach (string name in names) { sb.Append(" " + name); } Clipboard.SetText(sb.ToString()); Console.WriteLine(sb.ToString()); Console.ReadLine(); } } }
これを実行すると、クリップボードにこのような値がコピーされます。
takashi ano kego
<参考>
http://blog.another-d-mention.ro/programming/c/use-clipboard-copypaste-in-c-console-application/