Index of 3.0 Topics

Operators

=> (equal sign, greater than) lambda operator, 517

A

Action delegates, 524525

Aggregate functions, 618

Anonymous functions, 516, 517

Anonymous methods, internals, 527528

Anonymous types

definition, 572

generating, 578

implicit local variables, 572576

in query expressions, 625626

type incompatibilities, 576577

type safety, 576577

var keyword, 572576

AsParallel() operator, 595

Automatically implemented properties

description, 240242

internals, 254

Average() method, 618

B

BinaryExpression, 535

bool, returning in lambda expressions, 520

C

C++ vs. C#

var keyword, 575

Variant, 575

void*, 575

Caching data, 600

Captured variables, 528530

Capturing loop variables, 531533

Cartesian products, 608, 638639

Chaining multicast delegates, 555

Class collections, filtering, 591

Classes, inextensible, 273275

Closed over variables, 528530

Closures, 531

Collection initializers

definition, 578

initializing anonymous type arrays, 581582

initializing collections, 579

Collections

class, filtering, 591

discarding duplicate members, 639640

filtering, 622

projecting, 622

returning distinct members, 639640

Collections, sorting

by file size, 633634

orderby clause, 632633

with query expressions, 632633

Compile() method, 535

Concat() operator, 618

Constructors, object initializers, 257259

Continuation clauses, query expressions with LINQ, 637638

Count() method, 595596, 618

D

DefaultIfEmpty(), 613614

Deferred execution

description, 597598

expression trees, 630631

implementing, 630631

query expressions with LINQ, 627631

unintended triggering of standard query operators, 600601

Delegates

contravariance, 526527

covariance, 526527

creating with a statement lambda, 517518

deferred execution, 630631

vs. expression trees, 536537

general purpose, 524525

guidelines, 525

passing with expression lambdas, 520

structural equality, 526527

System.Action, 524525

System.Func, 524525

Derivation, extension methods, 299

DirectoryInfoExtension.Copy() method, 275277

Discarding duplicate members, query expressions with LINQ, 639640

Distinct() operator, 618, 639641

E

Error handling, multicast delegates, 554556

Explicitly declared parameter types, 518

Expression lambdas, 520

Expression trees

BinaryExpression, 535

building LINQ queries, 537538

Compile() method, 535

deferred execution, 630631

definition, 533

vs. delegates, 536537

examining, 538541

lambda expressions as data, 534535

LoopExpression, 535

MethodCallExpression, 535

NewExpression, 535

as object graphs, 535536

ParameterExpression, 535

UnaryExpression, 535

Extension methods, 275277, 341343

F

FileInfo collections, projecting, 633634

FileInfo object, 593, 625, 633

Filtering collections

class collections, Where() method, 597598

collections, 591, 622, 631632

query expressions with LINQ, 631632

where clause, 631632

Where() method, 591

Filtering with Where(), 591592, 597598

Flattening a sequence of sequences, query expressions with LINQ, 638639

from clause, query expressions with LINQ, 623624, 638639

Full outer join, definition, 604

Func delegates, 524525

G

GetType() method, 520

group by clause, query expressions with LINQ, 635637

GroupBy() method, grouping results, 610611

group clause, query expressions with LINQ, 623

Grouping query results, 634637

GroupJoin() method, 611613

I

IListable interface, 342343

Implicitly typed local variables, declaring, 6061

In type parameter, 526

Inner join, 604, 607610

Instance methods, adding to a class, 276

Interfaces, extension methods, 341343

Intersect() operator, 618

into keyword, query expressions with LINQ, 637

IQueryable<T> interface, custom LINQ providers, 619

J

JavaScript vs. C#

var keyword, 575

Variant, 575

void*, 575

Join() method, 607610

Join operations, standard query operators

Cartesian products, 608

DefaultIfEmpty(), 613614

full outer join, 604

grouping results with GroupBy(), 610611

inner join, 604, 607610

introduction, 603604

left outer join, 604

many-to-many relationships, 604

normalized data, 607608

one-to-many relationships, 604

one-to-many relationships, with GroupJoin(), 611613

outer joins, with GroupJoin(), 613614

outer joins, with SelectMany(), 613616

right outer join, 604

L

Lambda expressions

=> (equal sign, greater than) lambda operator, 517

captured variables, 528530

capturing loop variables, 531533

closed over variables, 528530

closures, 531

as data, 534535

definition, 516

explicitly declared parameter types, 518

expression lambdas, 520

GetType() method, 520

guidelines, 518

internals, 527528

lifetime of captured variables, 530

notes and examples, 521522

outer variable CIL implementation, 530531

outer variables, 528530

predicate, definition, 520, 591

returning a bool, 520

sequence of operations, 599

statement lambdas, 517519

typeof() operator, 520

Left outer join, definition, 604

let clause, query expressions with LINQ, 633634

Lifetime of captured variables, 530

Local variables, implicitly typed, 6061

Loop variables, capturing, 531533

LoopExpression, 535

M

Many-to-many relationships, definition, 604

Max() method, 618

MethodCallExpression, 535

Methods, partial, 285288

Min() method, 618

Monads, definition, 591

Multicast delegates

chaining, 555

error handling, 554556

N

.NET versions, 29

NewExpression, 535

Normalized data, 607608

O

Object initializers

calling, 257259

definition, 257

OfType() operator, 618

One-to-many relationships, 604, 611613

orderby clause, sorting collections, 632633

OrderByDescending(), 602

OrderBy() method, sorting class collections, 601603

Outer joins

with GroupJoin(), 613614

with SelectMany(), 613616

Outer variables, 528531

P

ParameterExpression, 535

Partial methods, 285288

Predicate

definition, 520, 591

filtering class collections, 591

Projecting collections

definition, 622

FileInfo collections, 633634

with query expressions, 624627

Properties, automatically implemented

description, 240242

internals, 254

Q

Query expressions with LINQ

code example, 622623

continuation clauses, 637638

deferred execution, 627631

definition, 621

discarding duplicate members, 639640

filtering collections, 631632

flattening a sequence of sequences, 638639

from clause, 623624, 638639

group by clause, 635637

group clause, 623

grouping query results, 634637

guidelines, 641

into keyword, 637

introduction, 622624

let clause, 633634

projecting collections, 624627

range variables, 622623

returning distinct members, 639640

select clause, 623624

sorting collections, 632633

translating to method calls, 640641

where clause, 623624

Query results, grouping, 634637

Queryable extensions, 619

R

Race conditions, 595

Range variables, query expressions with LINQ, 622623

Returning distinct members, query expressions with LINQ, 639640

Reverse() operator, 618

Right outer join, definition, 604

Running LINQ queries in parallel, 594595

S

Sample classes, 588591

select clause, query expressions with LINQ, 623624

Select() method, 592594, 615616

SelectMany() method

calling, 614616

creating outer joins, 613616

vs. Select(), 615616

Sequence diagram, 599

SequenceEquals() operator, 618

Sorting, collections

by file size, 633634

orderby clause, 632633

with query expressions, 632633

Sorting, standard query operators

ascending order ThenBy(), 601603

ascending order with OrderBy(), 601603

descending order with OrderByDescending(), 602

descending order with ThenByDescending(), 602

Standard query operators

AsParallel(), 595

caching data, 600

Concat(), 618

counting elements with Count(), 595596

deferred execution, 597598, 600601

definition, 588

Distinct(), 618

filtering with Where(), 591592, 597598

guidelines, 596, 641

Intersect(), 618

OfType(), 618

queryable extensions, 619

race conditions, 595

Reverse(), 618

running LINQ queries in parallel, 594595

sample classes, 588591

sequence diagram, 599

SequenceEquals(), 618

System.Linq.Enumerable method calls, 616617

table of, 618

Union(), 618

Standard query operators, join operations

Cartesian products, 608

DefaultIfEmpty(), 613614

full outer join, 604

grouping results with GroupBy(), 610611

inner join, 604, 607610

introduction, 603604

left outer join, 604

many-to-many relationships, 604

normalized data, 607608

one-to-many relationships, 604

one-to-many relationships, with GroupJoin(), 611613

outer joins, with GroupJoin(), 613614

outer joins, with SelectMany(), 613616

right outer join, 604

Standard query operators, sorting

ascending order ThenBy(), 601603

ascending order with OrderBy(), 601603

descending order with OrderByDescending(), 602

descending order with ThenByDescending(), 602

Statement lambdas, 517519

Structural equality, delegates, 526527

Sum() method, 618

System.Action delegates, 524525

System.Func delegates, 524525

System.Linq.Enumerable class

aggregate functions, 618

Average() method, 618

Count() method, 618

GroupBy() method, grouping results, 610611

GroupJoin() method, 611613

Join() method, 607610

Max() method, 618

Min() method, 618

Select() method, 592594

Sum() method, 618

System.Linq.Enumerable method calls, 616617

T

ThenBy(), 601603

ThenByDescending(), 602

ToArray() method, 600

ToDictionary() method, 600

ToList() method, 600

ToLookup() method, 600

Translating query expressions to method calls, 640641

Typeof() operator, lambda expressions, 520

Types

anonymous, 61, 263265

implicitly typed local variables, 6061

U

UnaryExpression, 535

Union() operator, 618

V

var keyword

anonymous types, 572576

C++ vs. C#, 575

declaring implicitly typed local variables, 6061

JavaScript vs. C#, 575

Visual Basic vs. C#, 575

Variant

C++ vs. C#, 575

JavaScript vs. C#, 575

Visual Basic vs. C#, 575

Visual Basic vs. C#

var keyword, 575

Variant, 575

void*, 575

void*

C++ vs. C#, 575

JavaScript vs. C#, 575

Visual Basic vs. C#, 575

W

where clause

filtering collections, 631632

query expressions with LINQ, 623624

Where() method, filtering class collections, 597598

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset