LINQ to Objects (C#)LINQ to Objects (C#)

Il termine "LINQ to Objects" si riferisce all'utilizzo diretto di query LINQ con qualsiasi raccolta IEnumerable o IEnumerable<T>, senza l'utilizzo di un'API o un provider LINQ intermedio, come per LINQ to SQL o LINQ to XML.The term "LINQ to Objects" refers to the use of LINQ queries with any IEnumerable or IEnumerable<T> collection directly, without the use of an intermediate LINQ provider or API such as LINQ to SQL or LINQ to XML. È possibile usare LINQ per eseguire una query su qualsiasi raccolta enumerabile, ad esempio List<T>, Array o Dictionary<TKey,TValue>.You can use LINQ to query any enumerable collections such as List<T>, Array, or Dictionary<TKey,TValue>. La raccolta può essere definita dall'utente o può essere restituita da un'API .NET.The collection may be user-defined or may be returned by a .NET API.

Come concetto di base, LINQ to Objects rappresenta un nuovo approccio alle raccolte.In a basic sense, LINQ to Objects represents a new approach to collections. In passato, era necessario scrivere cicli foreach complessi che specificavano come recuperare i dati da una raccolta.In the old way, you had to write complex foreach loops that specified how to retrieve data from a collection. Con l'approccio LINQ, è possibile scrivere il codice dichiarativo che descrive i dati da recuperare.In the LINQ approach, you write declarative code that describes what you want to retrieve.

Le query LINQ offrono anche tre vantaggi principali rispetto ai cicli foreach tradizionali:In addition, LINQ queries offer three main advantages over traditional foreach loops:

  • Sono più brevi e leggibili, soprattutto quando si filtrano più condizioni.They are more concise and readable, especially when filtering multiple conditions.

  • Forniscono funzioni potenti di filtro, ordinamento e raggruppamento con un codice dell'applicazione minimo.They provide powerful filtering, ordering, and grouping capabilities with a minimum of application code.

  • Possono essere trasferiti in altre origini dati con modifiche minime o nulle.They can be ported to other data sources with little or no modification.

In generale, più è complessa l'operazione che si vuole eseguire sui dati, maggiore sarà il vantaggio che si realizzerà usando LINQ anziché le tecniche di iterazione tradizionali.In general, the more complex the operation you want to perform on the data, the more benefit you'll realize by using LINQ instead of traditional iteration techniques.

Lo scopo di questa sezione è illustrare l'approccio LINQ con alcuni esempi specificamente selezionati.The purpose of this section is to demonstrate the LINQ approach with some select examples. Non è destinato a essere esaustivo.It's not intended to be exhaustive.

Contenuto della sezioneIn This Section

LINQ e stringhe (C#)LINQ and Strings (C#)
Viene illustrato come usare LINQ per eseguire query e trasformare stringhe e raccolte di stringhe.Explains how LINQ can be used to query and transform strings and collections of strings. Include anche collegamenti ad articoli che illustrano questi principi.Also includes links to articles that demonstrate these principles.

LINQ e reflection (C#)LINQ and Reflection (C#)
Collegamenti a un esempio che illustra l'uso di reflection in LINQ.Links to a sample that demonstrates how LINQ uses reflection.

Directory di file e LINQ (C#)LINQ and File Directories (C#)
Viene illustrato come usare LINQ per interagire con i file system.Explains how LINQ can be used to interact with file systems. Sono inoltre inclusi collegamenti ad articoli in cui vengono illustrati questi concetti.Also includes links to articles that demonstrate these concepts.

Come eseguire una query su un ArrayList con LINQ (C#)How to query an ArrayList with LINQ (C#)
Viene illustrato come eseguire una query su un oggetto ArrayList in C#.Demonstrates how to query an ArrayList in C#.

Come aggiungere metodi personalizzati per le query LINQ (C#)How to add custom methods for LINQ queries (C#)
Spiega come estendere il set di metodi utilizzabili per le query LINQ aggiungendo metodi di estensione all'interfaccia IEnumerable<T>.Explains how to extend the set of methods that you can use for LINQ queries by adding extension methods to the IEnumerable<T> interface.

LINQ (Language-Integrated Query) (C#)Language-Integrated Query (LINQ) (C#)
Vengono forniti collegamenti ad articoli che illustrano LINQ e forniscono esempi di codice che eseguono query.Provides links to articles that explain LINQ and provide examples of code that perform queries.