LINQ og Lister
Eksempel 1
Vi lager oss en enkel console applikasjon og gjør noen eksperimenter på en array av heltall:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace linq5 { class Program { static void Main(string[] args) { int[] T={12,45,2,9,0,-3,-5,7,8}; var positive = from value in T where value > 0 select value; show("positive",positive); var sorterte=from value in T orderby value select value; show("sorterte",sorterte); var even = from value in T where value % 2 == 0 select value; show("even",even); Console.Read(); } public static void show(String what,IEnumerable<int> tall) { String S = what+" : "; foreach (int i in tall) S += i + ","; Console.WriteLine(S.Substring(0,S.Length-1)); } } }
Eksempel 2
I dette eksempelet etablerer vi en liste, List <person> pList, av objekter og eksperimenterer med den. Objektene vi bruker ser slik ut:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace linq4 { class person { String m_name; String m_address; int m_yob; public person(String t) { String[] data = t.Split(','); m_name = data[0]; m_address = data[1]; m_yob = Convert.ToInt32(data[2]); } public string Name { get { return m_name; } set { m_name = value; } } public string Address { get { return m_address; } set { m_address = value; } } public int Year { get { return m_yob; } set { m_yob = value; } } override public String ToString() { return m_name + ":" + m_address[0] + ":" + m_yob; } } }
og de etableres fra en enkel text ressurs data.txt, slik:
private void loadData() { pList = new List<person>(); String[] slist = Properties.Resources.data.Split('\n'); foreach(String t in slist) if((t.Length <2)||(t.StartsWith("//"))) continue; else pList.Add(new person(t)); listBox1.Items.Clear(); foreach (person p in pList) listBox1.Items.Add(p); }
Når dette er gjort kan vi gå løs på lista med personer, pList, med linq. Her er to eksempler som fyller to listebokser med henholdsvis haldensere og sorterte mossinger:
// From Halden private void button1_Click(object sender, EventArgs e) { listBox2.Items.Clear(); var haldensere = from p in pList where p.Address.CompareTo("Halden")==0 select p; foreach (var p in haldensere) listBox2.Items.Add(p); } // from Moss, sorted private void button2_Click(object sender, EventArgs e) { listBox3.Items.Clear(); var mossinger = from p in pList where p.Address.CompareTo("Moss") == 0 orderby p.Name select p; foreach (var p in mossinger) listBox3.Items.Add(p); }