LINQ er nyt i .NET 3.5 / C# 3.0, og gør det muligt at lave dataudvælgelse nemmere end før, ved at indføre nogle SQL-agtige funktionaliteter (meget kortfattet - se mere her:
http://en.csharp-online.net/Introducing_LINQ%E2%80%94What_Is_LINQ)
Flg. eksempel viser hvordan du ville kunne bruge orderby i et LINQ statement:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
namespace TestSort
{
class Program
{
private static Random rand = new Random();
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml("<root />");
for (int i = 0; i < 50; i++)
AddRandomNode(doc);
XmlNodeList list = doc.SelectNodes("/root/node");
Console.WriteLine("Unsorted:");
PrintNodes(list.Cast<XmlNode>());
Console.WriteLine("\nSorted:");
var sorted = from node in list.Cast<XmlNode>()
orderby Convert.ToInt32(node.Attributes["time"].Value) ascending
select node;
PrintNodes(sorted);
}
private static void PrintNodes(IEnumerable<XmlNode> nodes)
{
foreach (var node in nodes)
Console.WriteLine(node.Attributes["time"].Value);
}
private static void AddRandomNode(XmlDocument doc)
{
XmlElement node = doc.CreateElement("node");
XmlAttribute att = doc.CreateAttribute("time");
att.Value = rand.Next(1000).ToString();
node.Attributes.Append(att);
doc.DocumentElement.AppendChild(node);
}
}
}