Csharp/C Sharp by API/System.Linq/Queryable
Содержание
- 1 Queryable.All
- 2 Queryable.Concat
- 3 Queryable.Contains
- 4 Queryable.Count()
- 5 Queryable.Distinct()
- 6 Queryable.Except
- 7 Queryable.First
- 8 Queryable.First(filter)
- 9 Queryable.FirstOrDefault
- 10 Queryable.Intersect
- 11 Queryable.Last()
- 12 Queryable.LastOrDefault(filter)
- 13 Queryable.LongCount()
- 14 Queryable.LongCount(filter)
- 15 Queryable.Max
- 16 Queryable.Max(filter)
- 17 Queryable.Min()
- 18 Queryable.Min(filter)
- 19 Queryable.OfType
- 20 Queryable.OrderBy
- 21 Queryable.OrderByDescending
- 22 Queryable.Reverse
- 23 Queryable.SelectMany
- 24 Queryable.SequenceEqual
- 25 Queryable.Single
- 26 Queryable.SingleOrDefault
- 27 Queryable.Skip
- 28 Queryable.SkipWhile
- 29 Queryable.SkipWhile(filter)
- 30 Queryable.StartsWith
- 31 Queryable.Sum()
- 32 Queryable.Sum(projection)
- 33 Queryable.Take
- 34 Queryable.TakeWhile
- 35 Queryable.TakeWhile(filter)
- 36 Queryable.ThenBy
- 37 Queryable.ThenByDescending
- 38 Queryable.ToArray
- 39 Queryable.ToDictionary
- 40 Queryable.ToDictionary(filter)
- 41 Queryable.ToList()
- 42 Queryable.Union
Queryable.All
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = { 2, 6, 1, 56, 102 }; Console.Write(numbers.All(e => e % 2 == 0) ? "Yes, they are" : "No, they aren"t"); }
}
</source>
Queryable.Concat
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int[] moreNumbers = { 10, 11, 12, 13 }; var query = numbers.Concat(moreNumbers); }
}
</source>
Queryable.Contains
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; bool contains = presidents.Contains("H"); Console.WriteLine(contains); }
}
</source>
Queryable.Count()
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; int count = presidents.Count(); Console.WriteLine(count); }
}
</source>
Queryable.Distinct()
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; public class MainClass {
public static void Main() { int[] factorsOf300 = { 2, 2, 3, 5, 5 }; int uniqueFactors = factorsOf300.Distinct().Count(); Console.WriteLine("There are {0} unique factors of 300.", uniqueFactors); }
}
</source>
Queryable.Except
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = {1, 2, 3, 4}; int[] numbers2 = {1, 1, 3, 3}; Console.Write(numbers.Except(numbers2)); }
}
</source>
Queryable.First
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var query = numbers.First(); Console.WriteLine("The first element in the sequence"); Console.Write(query); query = numbers.Last(); Console.WriteLine("The last element in the sequence"); Console.Write(query); Console.WriteLine("The first even element in the sequence"); query = numbers.First(n => n % 2 == 0); Console.Write(query); Console.WriteLine("The last even element in the sequence"); query = numbers.Last(n => n % 2 == 0); Console.Write(query); }
}
</source>
Queryable.First(filter)
<source lang="csharp">
using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; string name = presidents.First(p => p.StartsWith("H")); Console.WriteLine(name); }
}
</source>
Queryable.FirstOrDefault
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = { 1, 3, 5, 7, 9 }; var query = numbers.FirstOrDefault(n => n % 2 == 0); Console.WriteLine("The first even element in the sequence"); Console.Write(query); Console.WriteLine("The last odd element in the sequence"); query = numbers.LastOrDefault(n => n % 2 == 1); Console.Write(query); }
}
</source>
Queryable.Intersect
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = {1, 1, 2, 3, 3}; int[] numbers2 = {1, 3, 3, 4}; Console.Write(numbers.Intersect(numbers2)); }
}
</source>
Queryable.Last()
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; string name = presidents.Last(); Console.WriteLine(name); }
}
</source>
Queryable.LastOrDefault(filter)
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = { 1, 3, 5, 7, 9 }; var query = numbers.FirstOrDefault(n => n % 2 == 0); Console.WriteLine("The first even element in the sequence"); Console.Write(query); Console.WriteLine("The last odd element in the sequence"); query = numbers.LastOrDefault(n => n % 2 == 1); Console.Write(query); }
}
</source>
Queryable.LongCount()
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { long count = Enumerable.Range(0, int.MaxValue).Concat(Enumerable.Range(0, int.MaxValue)).LongCount(); Console.WriteLine(count); }
}
</source>
Queryable.LongCount(filter)
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { long count = Enumerable.Range(0, int.MaxValue). Concat(Enumerable.Range(0, int.MaxValue)).LongCount(n => n > 1 && n < 4); Console.WriteLine(count); }
}
</source>
Queryable.Max
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { int[] myInts = new int[] { 974, 2, 7, 1374, 27, 54 }; int maxInt = myInts.Max(); Console.WriteLine(maxInt); }
}
</source>
Queryable.Max(filter)
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class Employee {
public int birthYear; public string firstName; public string lastName; public static Employee[] GetEmployees() { Employee[] actors = new Employee[] { new Employee { birthYear = 1964, firstName = "K", lastName = "R" }, new Employee { birthYear = 1968, firstName = "O", lastName = "W" }, new Employee { birthYear = 1960, firstName = "J", lastName = "S" }, new Employee { birthYear = 1964, firstName = "S", lastName = "B" }, }; return (actors); }
} public class MainClass {
public static void Main() { int youngestEmployeeAge = Employee.GetEmployees().Max(a => a.birthYear); Console.WriteLine(youngestEmployeeAge); }
}
</source>
Queryable.Min()
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; public class MainClass {
public static void Main() { int[] numbers = { 10, 9, 8, 7, 6 }; int count = numbers.Count(); int min = numbers.Min(); }
}
</source>
Queryable.Min(filter)
<source lang="csharp">
using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class Employee {
public int birthYear; public string firstName; public string lastName; public static Employee[] GetEmployees() { Employee[] actors = new Employee[] { new Employee { birthYear = 1964, firstName = "Keanu", lastName = "Reeves" }, new Employee { birthYear = 1968, firstName = "Owen", lastName = "Wilson" }, new Employee { birthYear = 1960, firstName = "James", lastName = "Spader" }, new Employee { birthYear = 1964, firstName = "Sandra", lastName = "Bullock" }, }; return (actors); }
} public class MainClass {
public static void Main() { int oldestEmployeeAge = Employee.GetEmployees().Min(a => a.birthYear); Console.WriteLine(oldestEmployeeAge); }
}
</source>
Queryable.OfType
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ object[] sequence = {1, "Hello", 2.0}; Console.Write(sequence.OfType<double>()); }
}
</source>
Queryable.OrderBy
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; public class MainClass {
public static void Main() { string[] musos = { "D C", "R B", "W A" }; IEnumerable<string> query = musos.OrderBy(m => m.Split().Last()); }
}
</source>
Queryable.OrderByDescending
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"ant", "arding", "arrison", "eyes", "over", "Jackson"}; IEnumerable<string> items = presidents.OrderByDescending(s => s); foreach (string item in items) Console.WriteLine(item); }
}
</source>
Queryable.Reverse
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; public class MainClass {
public static void Main() { int[] numbers = { 10, 9, 8, 7, 6 }; IEnumerable<int> reversed = numbers.Reverse(); // { 6, 7, 8, 9, 10 } }
}
</source>
Queryable.SelectMany
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"ant", "arding", "rison", "eyes", "over", "ackson"}; IEnumerable<string> items = new[] { presidents.Take(5), presidents.Skip(5) }.SelectMany(s => s); foreach (string item in items) Console.WriteLine(item); }
}
</source>
Queryable.SequenceEqual
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; bool eq = presidents.SequenceEqual(presidents); Console.WriteLine(eq); }
}
</source>
Queryable.Single
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9}; var query = numbers.Single(n => n > 8); Console.Write(query); }
}
</source>
Queryable.SingleOrDefault
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9}; var query = numbers.SingleOrDefault(n => n > 9); Console.Write(query); }
}
</source>
Queryable.Skip
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"ant", "arding", "rison", "eyes", "over", "ackson"}; IEnumerable<string> items = new[] { presidents.Take(5), presidents.Skip(5) }.SelectMany(s => s); foreach (string item in items) Console.WriteLine(item); }
}
</source>
Queryable.SkipWhile
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = { 1, 3, 5, 4}; var query = numbers.TakeWhile(( n, index) => n >= index); var query2 = numbers.SkipWhile(( n, index) => n >= index); }
}
</source>
Queryable.SkipWhile(filter)
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; public class MainClass{ public static void Main() {
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var allButFirst3Numbers = numbers.SkipWhile(n => n % 3 != 0); Console.WriteLine("All elements starting from first element divisible by 3:"); foreach (var n in allButFirst3Numbers) { Console.WriteLine(n); } }
}
</source>
Queryable.StartsWith
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; int count = presidents.Count(s => s.StartsWith("H")); Console.WriteLine(count); }
}
</source>
Queryable.Sum()
<source lang="csharp">
using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; using System.Reflection; public class MainClass{
public static void Main(){ int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var query = numbers.Sum(); }
}
</source>
Queryable.Sum(projection)
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; public class MainClass {
public static void Main() { string[] words = { "cherry", "apple", "blueberry" }; double totalChars = words.Sum(w => w.Length); Console.WriteLine("There are a total of {0} characters in these words.", totalChars); }
}
</source>
Queryable.Take
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"ant", "arding", "arrison", "eyes", "over", "ackson"}; IEnumerable<string> items = presidents.Take(5).Concat(presidents.Skip(5)); foreach (string item in items) Console.WriteLine(item); }
}
</source>
Queryable.TakeWhile
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = { 1, 3, 5, 4}; var query = numbers.TakeWhile(( n, index) => n >= index); var query2 = numbers.SkipWhile(( n, index) => n >= index); }
}
</source>
Queryable.TakeWhile(filter)
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; public class MainClass{ public static void Main() {
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var firstNumbersLessThan6 = numbers.TakeWhile(n => n < 6); Console.WriteLine("First numbers less than 6:"); foreach (var n in firstNumbersLessThan6) { Console.WriteLine(n); } }
}
</source>
Queryable.ThenBy
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"ant", "arding", "arrison", "eyes", "over", "Jackson"}; IEnumerable<string> items = presidents.OrderBy(s => s.Length).ThenBy(s => s); foreach (string item in items) Console.WriteLine(item); }
}
</source>
Queryable.ThenByDescending
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; public class CaseInsensitiveComparer : IComparer<string> {
public int Compare(string x, string y) { return string.rupare(x, y, true); }
} public class MainClass {
public static void Main() { string[] words = { "a", "A", "b", "B", "C", "c" }; var sortedWords = words.OrderBy(a => a.Length) .ThenByDescending(a => a, new CaseInsensitiveComparer()); foreach (var s in sortedWords) { Console.WriteLine(s); } }
}
</source>
Queryable.ToArray
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; string[] names = presidents.OfType<string>().ToArray(); foreach (string name in names) Console.WriteLine(name); }
}
</source>
Queryable.ToDictionary
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ var q = from m in typeof(int).GetMethods() group m by m.Name into gb select gb; Dictionary<string, int> d = q.ToDictionary(k => k.Key, k => k.Count()); }
}
</source>
Queryable.ToDictionary(filter)
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; public class MainClass {
public static void Main() { var scoreRecords = new[] { new {Name = "A", Score = 50}, new {Name = "B" , Score = 40}, new {Name = "C", Score = 45} }; var scoreRecordsDict = scoreRecords.ToDictionary(sr => sr.Name); Console.WriteLine("Bob"s score: {0}", scoreRecordsDict["Bob"]); }
}
</source>
Queryable.ToList()
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"G", "H", "a", "H", "over", "Jack"}; List<string> names = presidents.ToList(); foreach (string name in names) Console.WriteLine(name); }
}
</source>
Queryable.Union
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{
public static void Main(){ int[] numbers = {1, 1, 3, 3}; int[] numbers2 = {1, 2, 3, 4}; Console.Write(numbers.Union(numbers2)); }
}
</source>