ES CSharp Keyword from - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
C#: from
Inicia una consulta LINQ o agrega un recorrido de secuencia anidada. El nombre de la variable de rango está disponible con las siguientes cláusulas.
Ejemplo sencillo (Example.cs)
Guarde este ejemplo por separado como Example.cs. Ejecútelo independientemente de los demás ejemplos de esta página.
Example.cs:
// PROJECT-EXAMPLE
using System.Linq;
int[] values = [1, 2, 3];
var result = from n in values select n;
System.Console.WriteLine(string.Join(",", result));
Resultado:
1,2,3
Sintaxis
from item in items ...
La consulta generalmente se ejecuta con retraso durante el recorrido. ToArray/ToList captura el resultado en una nueva colección.
Ejemplo 1: forma básica
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
public static class Program
{
public static async Task Main(string[] args)
{
var items = new[] { new { Id = 1, Name = "ore" }, new { Id = 2, Name = "wood" } };
var counts = new[] { new { Id = 1, Count = 4 }, new { Id = 2, Count = 2 } };
var query = from item in items
join count in counts on item.Id equals count.Id
let total = count.Count * 2
where total > 3
orderby total descending, item.Name ascending
select new { item.Name, Total = total };
foreach (var item in query) Console.WriteLine($"{item.Name}:{item.Total}");
}
}
Ejemplo 2: otra forma práctica
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
public static class Program
{
public static async Task Main(string[] args)
{
int[] values = [1, 2, 3, 4, 5];
var query = from value in values
let parity = value % 2
group value by parity into grouped
where grouped.Any()
orderby grouped.Key ascending
select new { Key = grouped.Key, Total = grouped.Sum() };
foreach (var item in query) Console.WriteLine($"{item.Key}:{item.Total}");
}
}
Fuente oficial: Microsoft Aprender.