diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 13c56d6399983..929481ca03053 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -406,6 +406,18 @@ "source_path": "docs/csharp/language-reference/compiler-options/app-deployment.md", "redirect_url": "/dotnet/framework/deployment/deployment-guide-for-developers" }, + { + "source_path": "docs/csharp/language-reference/keywords/access-keywords.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/conversion-keywords.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/exception-handling-statements.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords/statement-keywords" + }, { "source_path": "docs/csharp/language-reference/keywords/false.md", "redirect_url": "/dotnet/csharp/language-reference/keywords/false-literal" @@ -418,6 +430,38 @@ "source_path": "docs/csharp/language-reference/keywords/interpolated-strings.md", "redirect_url": "/dotnet/csharp/language-reference/tokens/interpolated" }, + { + "source_path": "docs/csharp/language-reference/keywords/iteration-statements.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords/statement-keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/jump-statements.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords/statement-keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/literal-keywords.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/modifiers.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/namespace-keywords.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/operator-keywords.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/reference-tables-for-types.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords" + }, + { + "source_path": "docs/csharp/language-reference/keywords/selection-statements.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords/statement-keywords" + }, { "source_path": "docs/csharp/language-reference/keywords/true.md", "redirect_url": "/dotnet/csharp/language-reference/keywords/true-literal" @@ -426,6 +470,10 @@ "source_path": "docs/csharp/language-reference/keywords/true-false-operators.md", "redirect_url": "/dotnet/csharp/language-reference/operators/true-false-operators" }, + { + "source_path": "docs/csharp/language-reference/keywords/types.md", + "redirect_url": "/dotnet/csharp/language-reference/keywords" + }, { "source_path": "docs/csharp/language-reference/keywords/true-operator.md", "redirect_url": "/dotnet/csharp/language-reference/operators/true-false-operators" @@ -644,10 +692,106 @@ "source_path": "docs/csharp/programming-guide/concepts/async/asynchronous-programming-with-async-and-await.md", "redirect_url": "/dotnet/csharp/async/" }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-annotations" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/how-to-join-two-collections-linq-to-xml" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-attribute" + }, { "source_path": "docs/csharp/programming-guide/concepts/linq/cloning-vs-attaching.md", "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/creating-xml-trees-linq-to-xml-2#attaching-vs-cloning" }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/creating-xml-trees.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/functional-construction-linq-to-xml" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/wordprocessingml-document-with-styles" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/getting-started-with-linq.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/introduction-to-linq.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/comparison-of-xpath-and-linq-to-xml" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/linq-to-xml-axes.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/parsing-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/how-to-parse-a-string" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/performance-linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/performance-of-chained-queries-linq-to-xml" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/how-to-work-with-dictionaries-using-linq-to-xml" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-linq-to-xml-1" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/serializing-object-graphs-that-contain-xelement-objects.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/serializing-xml-trees.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents" + }, + { + "source_path": "docs/csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md", + "redirect_url": "/dotnet/csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml" + }, { "source_path": "docs/csharp/programming-guide/concepts/threading/how-to-use-a-thread-pool.md", "redirect_url": "/dotnet/api/system.threading.threadpool.queueuserworkitem" @@ -693,6 +837,10 @@ "source_path": "docs/csharp/programming-guide/generics/generics-in-the-net-framework-class-library.md", "redirect_url": "/dotnet/standard/generics/index" }, + { + "source_path": "docs/csharp/programming-guide/generics/introduction-to-generics.md", + "redirect_url": "/dotnet/standard/generics/index" + }, { "source_path": "docs/csharp/programming-guide/interop/interoperability.md", "redirect_url": "/dotnet/csharp/programming-guide/interop/index" diff --git a/docs/csharp/basic-types.md b/docs/csharp/basic-types.md index ad0e9ca2e7699..860b65cf817b7 100644 --- a/docs/csharp/basic-types.md +++ b/docs/csharp/basic-types.md @@ -48,7 +48,7 @@ For more information, see [Casting and type conversions](programming-guide/types ## Built-in types -C# provides a standard set of built-in numeric types to represent integers, floating point values, Boolean expressions, text characters, decimal values, and other types of data. There are also built-in **string** and **object** types. These are available for you to use in any C# program. For a more information about the built-in types, see [Reference table for types](language-reference/keywords/reference-tables-for-types.md). +C# provides a standard set of built-in numeric types to represent integers, floating point values, Boolean expressions, text characters, decimal values, and other types of data. There are also built-in **string** and **object** types. These are available for you to use in any C# program. For a more information about the built-in types, see [Reference table for built-in types](language-reference/keywords/built-in-types-table.md). ## Custom types diff --git a/docs/csharp/language-reference/keywords/access-keywords.md b/docs/csharp/language-reference/keywords/access-keywords.md deleted file mode 100644 index d6ec984a5bfb9..0000000000000 --- a/docs/csharp/language-reference/keywords/access-keywords.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Access Keywords - C# Reference" -ms.custom: seodec18 - -ms.date: 07/20/2015 -helpviewer_keywords: - - "access keywords [C#]" -ms.assetid: 3b680d9c-0998-42df-8ba7-5783f7abda75 ---- -# Access Keywords (C# Reference) -This section introduces the following access keywords: - -- [base](../../../csharp/language-reference/keywords/base.md) - - Accesses the members of the base class. - -- [this](../../../csharp/language-reference/keywords/this.md) - - Refers to the current instance of the class. - -## See also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [Access Modifiers](../../../csharp/language-reference/keywords/access-modifiers.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) diff --git a/docs/csharp/language-reference/keywords/as.md b/docs/csharp/language-reference/keywords/as.md index ff07fda8a832e..5931eab057e88 100644 --- a/docs/csharp/language-reference/keywords/as.md +++ b/docs/csharp/language-reference/keywords/as.md @@ -48,4 +48,3 @@ For more information, see [The as operator](~/_csharplang/spec/expressions.md#th - [C# Keywords](../../../csharp/language-reference/keywords/index.md) - [is](../../../csharp/language-reference/keywords/is.md) - [?: Operator](../../../csharp/language-reference/operators/conditional-operator.md) -- [Operator Keywords](../../../csharp/language-reference/keywords/operator-keywords.md) diff --git a/docs/csharp/language-reference/keywords/break.md b/docs/csharp/language-reference/keywords/break.md index f5f23188b2107..96cc00e9cc588 100644 --- a/docs/csharp/language-reference/keywords/break.md +++ b/docs/csharp/language-reference/keywords/break.md @@ -49,5 +49,3 @@ Sorry, invalid selection. - [C# Programming Guide](../../../csharp/programming-guide/index.md) - [C# Keywords](../../../csharp/language-reference/keywords/index.md) - [switch](../../../csharp/language-reference/keywords/switch.md) -- [Jump Statements](../../../csharp/language-reference/keywords/jump-statements.md) -- [Iteration Statements](../../../csharp/language-reference/keywords/iteration-statements.md) diff --git a/docs/csharp/language-reference/keywords/built-in-types-table.md b/docs/csharp/language-reference/keywords/built-in-types-table.md index 47c4e18ec84f6..c3d00dbad1008 100644 --- a/docs/csharp/language-reference/keywords/built-in-types-table.md +++ b/docs/csharp/language-reference/keywords/built-in-types-table.md @@ -61,7 +61,6 @@ Console.WriteLine(doubleType.FullName); - [C# Reference](../../../csharp/language-reference/index.md) - [C# Programming Guide](../../../csharp/programming-guide/index.md) - [C# Keywords](index.md) -- [Reference tables for types](reference-tables-for-types.md) - [Value types](value-types.md) - [Reference types](reference-types.md) - [Default values table](default-values-table.md) diff --git a/docs/csharp/language-reference/keywords/continue.md b/docs/csharp/language-reference/keywords/continue.md index 2416da7233473..532a680b54df5 100644 --- a/docs/csharp/language-reference/keywords/continue.md +++ b/docs/csharp/language-reference/keywords/continue.md @@ -30,4 +30,3 @@ In this example, a counter is initialized to count from 1 to 10. By using the `c - [C# Programming Guide](../../../csharp/programming-guide/index.md) - [C# Keywords](../../../csharp/language-reference/keywords/index.md) - [break Statement](/cpp/cpp/break-statement-cpp) -- [Jump Statements](../../../csharp/language-reference/keywords/jump-statements.md) diff --git a/docs/csharp/language-reference/keywords/conversion-keywords.md b/docs/csharp/language-reference/keywords/conversion-keywords.md deleted file mode 100644 index 8bcad1f7460c5..0000000000000 --- a/docs/csharp/language-reference/keywords/conversion-keywords.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Conversion Keywords - C# Reference" -ms.custom: seodec18 - -ms.date: 07/20/2015 -helpviewer_keywords: - - "conversions [C#], keywords" - - "type conversion [C#], keywords" - - "types [C#], conversion keywords" -ms.assetid: 8683ff14-5289-4efe-b4f5-1e6a075918ab ---- -# Conversion Keywords (C# Reference) -This section describes keywords used in type conversions: - -- [explicit](../../../csharp/language-reference/keywords/explicit.md) - -- [implicit](../../../csharp/language-reference/keywords/implicit.md) - -- [operator](../../../csharp/language-reference/keywords/operator.md) - -## See also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) diff --git a/docs/csharp/language-reference/keywords/default-values-table.md b/docs/csharp/language-reference/keywords/default-values-table.md index 7dbe6408e4185..6b47b3bcd5c69 100644 --- a/docs/csharp/language-reference/keywords/default-values-table.md +++ b/docs/csharp/language-reference/keywords/default-values-table.md @@ -65,7 +65,6 @@ The default value of any [reference type](reference-types.md) is `null`. The def - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Reference tables for types](reference-tables-for-types.md) - [Value types](value-types.md) - [Value types table](value-types-table.md) - [Built-in types table](built-in-types-table.md) diff --git a/docs/csharp/language-reference/keywords/do.md b/docs/csharp/language-reference/keywords/do.md index cf7bcd1cbb727..8fe0daba21eab 100644 --- a/docs/csharp/language-reference/keywords/do.md +++ b/docs/csharp/language-reference/keywords/do.md @@ -35,5 +35,4 @@ For more information, see [The do statement](~/_csharplang/spec/statements.md#th - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Iteration Statements](iteration-statements.md) - [while statement](while.md) diff --git a/docs/csharp/language-reference/keywords/exception-handling-statements.md b/docs/csharp/language-reference/keywords/exception-handling-statements.md deleted file mode 100644 index 75baab730b815..0000000000000 --- a/docs/csharp/language-reference/keywords/exception-handling-statements.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Exception Handling Statements - C# Reference" -ms.custom: seodec18 - -ms.date: 07/20/2015 -helpviewer_keywords: - - "keywords [C#], exception handling" -ms.assetid: 6d0323a3-3164-411c-9b84-a3606bd0e13c ---- -# Exception Handling Statements (C# Reference) -C# provides built-in support for handling anomalous situations, known as exceptions, which may occur during the execution of your program. These exceptions are handled by code that is outside the normal flow of control. - - The following exception handling topics are explained in this section: - -- [throw](../../../csharp/language-reference/keywords/throw.md) - -- [try-catch](../../../csharp/language-reference/keywords/try-catch.md) - -- [try-finally](../../../csharp/language-reference/keywords/try-finally.md) - -- [try-catch-finally](../../../csharp/language-reference/keywords/try-catch-finally.md) - -## See also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Statement Keywords](../../../csharp/language-reference/keywords/statement-keywords.md) -- [Exceptions and Exception Handling](../../../csharp/programming-guide/exceptions/index.md) diff --git a/docs/csharp/language-reference/keywords/extern-alias.md b/docs/csharp/language-reference/keywords/extern-alias.md index 27de9672e6602..c8d646505ea58 100644 --- a/docs/csharp/language-reference/keywords/extern-alias.md +++ b/docs/csharp/language-reference/keywords/extern-alias.md @@ -40,6 +40,5 @@ You might have to reference two versions of assemblies that have the same fully- - [C# Reference](../../../csharp/language-reference/index.md) - [C# Programming Guide](../../../csharp/programming-guide/index.md) - [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Namespace Keywords](../../../csharp/language-reference/keywords/namespace-keywords.md) - [:: Operator](../../../csharp/language-reference/operators/namespace-alias-qualifer.md) - [/reference (C# Compiler Options)](../../../csharp/language-reference/compiler-options/reference-compiler-option.md) diff --git a/docs/csharp/language-reference/keywords/floating-point-types-table.md b/docs/csharp/language-reference/keywords/floating-point-types-table.md index 750d0d0643879..1411974c370c9 100644 --- a/docs/csharp/language-reference/keywords/floating-point-types-table.md +++ b/docs/csharp/language-reference/keywords/floating-point-types-table.md @@ -24,7 +24,6 @@ The following table shows the precision and approximate ranges for the floating- - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Reference tables for types](reference-tables-for-types.md) - [Integral types table](integral-types-table.md) - [Default values table](default-values-table.md) - [Formatting numeric results table](formatting-numeric-results-table.md) diff --git a/docs/csharp/language-reference/keywords/for.md b/docs/csharp/language-reference/keywords/for.md index 88d3becf90480..5b0dcd84de239 100644 --- a/docs/csharp/language-reference/keywords/for.md +++ b/docs/csharp/language-reference/keywords/for.md @@ -106,5 +106,4 @@ For more information, see [The for statement](~/_csharplang/spec/statements.md#t - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Iteration Statements](iteration-statements.md) - [foreach, in](foreach-in.md) diff --git a/docs/csharp/language-reference/keywords/foreach-in.md b/docs/csharp/language-reference/keywords/foreach-in.md index e7d0aad708cdc..5afe94d0d5131 100644 --- a/docs/csharp/language-reference/keywords/foreach-in.md +++ b/docs/csharp/language-reference/keywords/foreach-in.md @@ -48,6 +48,5 @@ For more information, see [The foreach statement](~/_csharplang/spec/statements. - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Iteration Statements](iteration-statements.md) - [Using foreach with arrays](../../programming-guide/arrays/using-foreach-with-arrays.md) - [for statement](for.md) diff --git a/docs/csharp/language-reference/keywords/formatting-numeric-results-table.md b/docs/csharp/language-reference/keywords/formatting-numeric-results-table.md index 07e385a9c4317..064828fe19281 100644 --- a/docs/csharp/language-reference/keywords/formatting-numeric-results-table.md +++ b/docs/csharp/language-reference/keywords/formatting-numeric-results-table.md @@ -49,7 +49,6 @@ For more information, see [Standard Numeric Format Strings](../../../standard/ba - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) -- [Reference tables for types](reference-tables-for-types.md) - [Formatting types](../../../standard/base-types/formatting-types.md) - [Composite formatting](../../../standard/base-types/composite-formatting.md) - [String interpolation](../tokens/interpolated.md) diff --git a/docs/csharp/language-reference/keywords/goto.md b/docs/csharp/language-reference/keywords/goto.md index 74b707901742a..0647c031633d0 100644 --- a/docs/csharp/language-reference/keywords/goto.md +++ b/docs/csharp/language-reference/keywords/goto.md @@ -40,4 +40,3 @@ The following example demonstrates using `goto` to break out from nested loops. - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) - [goto Statement (C++)](/cpp/cpp/goto-statement-cpp) -- [Jump Statements](jump-statements.md) diff --git a/docs/csharp/language-reference/keywords/integral-types-table.md b/docs/csharp/language-reference/keywords/integral-types-table.md index b26b3b40d758a..c9aa6d73b9529 100644 --- a/docs/csharp/language-reference/keywords/integral-types-table.md +++ b/docs/csharp/language-reference/keywords/integral-types-table.md @@ -37,7 +37,6 @@ Use the structure - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Reference tables for types](reference-tables-for-types.md) - [Floating-point types table](floating-point-types-table.md) - [Default values table](default-values-table.md) - [Formatting numeric results table](formatting-numeric-results-table.md) diff --git a/docs/csharp/language-reference/keywords/is.md b/docs/csharp/language-reference/keywords/is.md index 1c16b26a0ba3d..731cb2ce33f8b 100644 --- a/docs/csharp/language-reference/keywords/is.md +++ b/docs/csharp/language-reference/keywords/is.md @@ -159,4 +159,3 @@ The following example uses the var pattern to assign an expression to a variable - [C# Keywords](../../../csharp/language-reference/keywords/index.md) - [typeof](../../../csharp/language-reference/keywords/typeof.md) - [as](../../../csharp/language-reference/keywords/as.md) -- [Operator Keywords](../../../csharp/language-reference/keywords/operator-keywords.md) diff --git a/docs/csharp/language-reference/keywords/iteration-statements.md b/docs/csharp/language-reference/keywords/iteration-statements.md deleted file mode 100644 index 84f8ab0e99c25..0000000000000 --- a/docs/csharp/language-reference/keywords/iteration-statements.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Iteration Statements - C# Reference" -ms.custom: seodec18 - -ms.date: 07/20/2015 -helpviewer_keywords: - - "iteration statements [C#]" - - "loop structures [C#]" -ms.assetid: 7d494566-bf75-4ee8-979f-0f964209437e ---- -# Iteration Statements (C# Reference) - -You can create loops by using the iteration statements. Iteration statements cause embedded statements to be executed a number of times, subject to the loop-termination criteria. These statements are executed in order, except when a [jump statement](jump-statements.md) is encountered. - -The following keywords are used in iteration statements: - -- [do](do.md) - -- [for](for.md) - -- [foreach, in](foreach-in.md) - -- [while](while.md) - -## See also - -- [C# Reference](../index.md) -- [C# Programming Guide](../../programming-guide/index.md) -- [C# Keywords](index.md) -- [Statement Keywords](statement-keywords.md) diff --git a/docs/csharp/language-reference/keywords/jump-statements.md b/docs/csharp/language-reference/keywords/jump-statements.md deleted file mode 100644 index 4ba9b2449f88d..0000000000000 --- a/docs/csharp/language-reference/keywords/jump-statements.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Jump Statements - C# Reference" -ms.custom: seodec18 - -ms.date: 07/20/2015 -helpviewer_keywords: - - "jump statements [C#]" - - "branch statements [C#]" -ms.assetid: 58da6ae7-7388-491e-828f-e74485d87d53 ---- -# Jump Statements (C# Reference) -Branching is performed using jump statements, which cause an immediate transfer of the program control. The following keywords are used in jump statements: - -- [break](../../../csharp/language-reference/keywords/break.md) - -- [continue](../../../csharp/language-reference/keywords/continue.md) - -- [goto](../../../csharp/language-reference/keywords/goto.md) - -- [return](../../../csharp/language-reference/keywords/return.md) - -- [throw](../../../csharp/language-reference/keywords/throw.md) - -## See also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Statement Keywords](../../../csharp/language-reference/keywords/statement-keywords.md) diff --git a/docs/csharp/language-reference/keywords/let-clause.md b/docs/csharp/language-reference/keywords/let-clause.md index 9ce373f3dfdcd..754d2db479e9b 100644 --- a/docs/csharp/language-reference/keywords/let-clause.md +++ b/docs/csharp/language-reference/keywords/let-clause.md @@ -30,5 +30,5 @@ In the following example `let` is used in two ways: - [C# Reference](../../language-reference/index.md) - [Query Keywords (LINQ)](query-keywords.md) - [Language Integrated Query (LINQ)](../../linq/index.md) -- [Getting Started with LINQ in C#](../../programming-guide/concepts/linq/getting-started-with-linq.md) +- [Getting Started with LINQ in C#](../../programming-guide/concepts/linq/index.md) - [Handle exceptions in query expressions](../../linq/handle-exceptions-in-query-expressions.md) diff --git a/docs/csharp/language-reference/keywords/literal-keywords.md b/docs/csharp/language-reference/keywords/literal-keywords.md deleted file mode 100644 index aaa42997f13e0..0000000000000 --- a/docs/csharp/language-reference/keywords/literal-keywords.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Literal Keywords - C# Reference" -ms.custom: seodec18 -ms.date: 07/20/2015 -helpviewer_keywords: - - "literal keywords [C#]" -ms.assetid: 95b3f075-47d7-4990-8ea8-9e637678bf3c ---- -# Literal Keywords (C# Reference) - -C# has the following literal keywords: - -- [null](null.md) - -- [true](true-literal.md) - -- [false](false-literal.md) - -- [default](default.md) - -## See also - -- [C# Reference](../index.md) -- [C# Programming Guide](../../programming-guide/index.md) -- [C# Keywords](index.md) diff --git a/docs/csharp/language-reference/keywords/modifiers.md b/docs/csharp/language-reference/keywords/modifiers.md deleted file mode 100644 index 6088728cddbf4..0000000000000 --- a/docs/csharp/language-reference/keywords/modifiers.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Modifiers - C# Reference" -ms.custom: seodec18 - -ms.date: 07/20/2015 -helpviewer_keywords: - - "keywords [C#], modifiers" - - "modifiers [C#]" -ms.assetid: c96691dd-b357-49ec-b5ae-03ca214fadfb ---- -# Modifiers (C# Reference) -Modifiers are used to modify declarations of types and type members. This section introduces the C# modifiers. - -|Modifier|Purpose| -|--------------|-------------| -|[Access Modifiers](../../../csharp/language-reference/keywords/access-modifiers.md)

- [public](../../../csharp/language-reference/keywords/public.md)
- [private](../../../csharp/language-reference/keywords/private.md)
- [internal](../../../csharp/language-reference/keywords/internal.md)
- [protected](../../../csharp/language-reference/keywords/protected.md)|Specifies the declared accessibility of types and type members.| -|[abstract](../../../csharp/language-reference/keywords/abstract.md)|Indicates that a class is intended only to be a base class of other classes.| -|[async](../../../csharp/language-reference/keywords/async.md)|Indicates that the modified method, lambda expression, or anonymous method is asynchronous.| -|[const](../../../csharp/language-reference/keywords/const.md)|Specifies that the value of the field or the local variable cannot be modified.| -|[event](../../../csharp/language-reference/keywords/event.md)|Declares an event.| -|[extern](../../../csharp/language-reference/keywords/extern.md)|Indicates that the method is implemented externally.| -|[new](../../../csharp/language-reference/keywords/new.md)|Explicitly hides a member inherited from a base class.| -|[override](../../../csharp/language-reference/keywords/override.md)|Provides a new implementation of a virtual member inherited from a base class.| -|[partial](../../../csharp/language-reference/keywords/partial-type.md)|Defines partial classes, structs and methods throughout the same assembly.| -|[readonly](../../../csharp/language-reference/keywords/readonly.md)|Declares a field that can only be assigned values as part of the declaration or in a constructor in the same class.| -|[sealed](../../../csharp/language-reference/keywords/sealed.md)|Specifies that a class cannot be inherited.| -|[static](../../../csharp/language-reference/keywords/static.md)|Declares a member that belongs to the type itself instead of to a specific object.| -|[unsafe](../../../csharp/language-reference/keywords/unsafe.md)|Declares an unsafe context.| -|[virtual](../../../csharp/language-reference/keywords/virtual.md)|Declares a method or an accessor whose implementation can be changed by an overriding member in a derived class.| -|[volatile](../../../csharp/language-reference/keywords/volatile.md)|Indicates that a field can be modified in the program by something such as the operating system, the hardware, or a concurrently executing thread.| - -## See also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) diff --git a/docs/csharp/language-reference/keywords/namespace-keywords.md b/docs/csharp/language-reference/keywords/namespace-keywords.md deleted file mode 100644 index ef9573442657b..0000000000000 --- a/docs/csharp/language-reference/keywords/namespace-keywords.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Namespace Keywords - C# Reference" -ms.custom: seodec18 -ms.date: 07/20/2015 -helpviewer_keywords: - - "namespaces [C#], keywords" -ms.assetid: 091a66eb-b10d-4f54-9102-5ac0d4bdb84b ---- -# Namespace Keywords (C# Reference) - -This section describes the keywords and operators that are associated with using namespaces: - -- [namespace](namespace.md) -- [using](using-directive.md) -- [using static](using-static.md) -- [. Operator](../operators/member-access-operators.md#member-access-operator-) -- [:: Operator](../operators/namespace-alias-qualifer.md) -- [extern alias](extern-alias.md) - -## See also - -- [C# Reference](../index.md) -- [C# Programming Guide](../../programming-guide/index.md) -- [C# Keywords](index.md) -- [Namespaces](../../programming-guide/namespaces/index.md) diff --git a/docs/csharp/language-reference/keywords/namespace.md b/docs/csharp/language-reference/keywords/namespace.md index 3ea0906fdfa31..ae42efe4a5d0a 100644 --- a/docs/csharp/language-reference/keywords/namespace.md +++ b/docs/csharp/language-reference/keywords/namespace.md @@ -66,6 +66,5 @@ For more information about using namespaces, see the following topics: - [C# Reference](../../language-reference/index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Namespace Keywords](namespace-keywords.md) - [using](using-directive.md) - [using static](using-static.md) diff --git a/docs/csharp/language-reference/keywords/new-constraint.md b/docs/csharp/language-reference/keywords/new-constraint.md index 5257b26ae21f9..5cdfcf269549b 100644 --- a/docs/csharp/language-reference/keywords/new-constraint.md +++ b/docs/csharp/language-reference/keywords/new-constraint.md @@ -35,5 +35,4 @@ For more information, see [Constraints on Type Parameters](../../programming-gui - [C# Reference](../../language-reference/index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Operator Keywords](operator-keywords.md) - [Generics](../../programming-guide/generics/index.md) diff --git a/docs/csharp/language-reference/keywords/new-modifier.md b/docs/csharp/language-reference/keywords/new-modifier.md index 704e43aecdda9..b9711de367c7e 100644 --- a/docs/csharp/language-reference/keywords/new-modifier.md +++ b/docs/csharp/language-reference/keywords/new-modifier.md @@ -56,7 +56,6 @@ The keyword new is required on 'MyDerivedC.x' because it hides inherited member - [C# Reference](../../language-reference/index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Operator Keywords](operator-keywords.md) - [Modifiers](modifiers.md) - [Versioning with the Override and New Keywords](../../programming-guide/classes-and-structs/versioning-with-the-override-and-new-keywords.md) - [Knowing When to Use Override and New Keywords](../../programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md) diff --git a/docs/csharp/language-reference/keywords/new-operator.md b/docs/csharp/language-reference/keywords/new-operator.md index 93f6601b35e81..0a04377704268 100644 --- a/docs/csharp/language-reference/keywords/new-operator.md +++ b/docs/csharp/language-reference/keywords/new-operator.md @@ -61,6 +61,5 @@ Notice in the example that the default value of a string is `null`. Therefore, i - [C# Reference](../../language-reference/index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Operator Keywords](operator-keywords.md) - [new](new.md) - [Anonymous Types](../../programming-guide/classes-and-structs/anonymous-types.md) diff --git a/docs/csharp/language-reference/keywords/null.md b/docs/csharp/language-reference/keywords/null.md index a26f1fcd2bf21..6d1a39ac43feb 100644 --- a/docs/csharp/language-reference/keywords/null.md +++ b/docs/csharp/language-reference/keywords/null.md @@ -27,6 +27,5 @@ The following example demonstrates some behaviors of the null keyword: - [C# Reference](../../language-reference/index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Literal Keywords](literal-keywords.md) - [Default Values Table](default-values-table.md) - [Nothing](../../../visual-basic/language-reference/nothing.md) diff --git a/docs/csharp/language-reference/keywords/operator-keywords.md b/docs/csharp/language-reference/keywords/operator-keywords.md deleted file mode 100644 index 2b409319f44c5..0000000000000 --- a/docs/csharp/language-reference/keywords/operator-keywords.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Operator Keywords - C# Reference" -ms.custom: seodec18 -ms.date: 12/10/2018 -helpviewer_keywords: - - "keywords [C#], operators" - - "operators [C#], keywords" -ms.assetid: f745c81f-f8d8-4673-86a1-0f3a85cc63c3 ---- -# Operator Keywords (C# Reference) - -Used to perform miscellaneous actions such as creating objects, checking the run-time type of an object, obtaining the size of a type, and other actions. This section introduces the following keywords: - -- [as](as.md) Converts an object to a compatible type. - -- [await](await.md) Suspends an [async](async.md) method until an awaited task is completed. - -- [is](is.md) Checks the run-time type of an object, or (starting with C# 7.0) tests an expression against a pattern. - -- [new](new.md) - - - [new Operator](new-operator.md) Creates objects. - - - [new Modifier](new-modifier.md) Hides an inherited member. - - - [new Constraint](new-constraint.md) Qualifies a type parameter. - -- [nameof](nameof.md) Obtains the simple (unqualified) string name of a variable, type, or member. - -- [sizeof](sizeof.md) Obtains the size of an unmanaged type. - -- [typeof](typeof.md) Obtains the object for a type. - -- [stackalloc](stackalloc.md) Allocates a block of memory on the stack. - -The following keywords, which can be used as operators and as statements, are covered in the [Statements](statement-keywords.md) section: - -- [checked](checked.md) Specifies checked context. - -- [unchecked](unchecked.md) Specifies unchecked context. - -## See also - -- [C# Reference](../index.md) -- [C# Programming Guide](../../programming-guide/index.md) -- [C# Keywords](index.md) -- [C# Operators](../operators/index.md) diff --git a/docs/csharp/language-reference/keywords/orderby-clause.md b/docs/csharp/language-reference/keywords/orderby-clause.md index d0a0e21f422b5..e1382b23e2b60 100644 --- a/docs/csharp/language-reference/keywords/orderby-clause.md +++ b/docs/csharp/language-reference/keywords/orderby-clause.md @@ -37,4 +37,4 @@ At compile time, the `orderby` clause is translated to a call to the or when pos - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Operator Keywords](operator-keywords.md) - [Unsafe Code and Pointers](../../programming-guide/unsafe-code-pointers/index.md) diff --git a/docs/csharp/language-reference/keywords/statement-keywords.md b/docs/csharp/language-reference/keywords/statement-keywords.md index 57554deb37293..b67ac150d5c2e 100644 --- a/docs/csharp/language-reference/keywords/statement-keywords.md +++ b/docs/csharp/language-reference/keywords/statement-keywords.md @@ -14,10 +14,10 @@ Statements are program instructions. Except as described in the topics reference |Category|C# keywords| |--------------|------------------| -|[Selection statements](selection-statements.md)|[if](if-else.md), [else](if-else.md), [switch](switch.md), [case](switch.md)| -|[Iteration statements](iteration-statements.md)|[do](do.md), [for](for.md), [foreach](foreach-in.md), [in](foreach-in.md), [while](while.md)| -|[Jump statements](jump-statements.md)|[break](break.md), [continue](continue.md), [default](switch.md), [goto](goto.md), [return](return.md), [yield](yield.md)| -|[Exception handling statements](exception-handling-statements.md)|[throw](throw.md), [try-catch](try-catch.md), [try-finally](try-finally.md), [try-catch-finally](try-catch-finally.md)| +|Selection statements|[if](if-else.md), [else](if-else.md), [switch](switch.md), [case](switch.md)| +|Iteration statements|[do](do.md), [for](for.md), [foreach](foreach-in.md), [in](foreach-in.md), [while](while.md)| +|Jump statements|[break](break.md), [continue](continue.md), [default](switch.md), [goto](goto.md), [return](return.md), [yield](yield.md)| +|Exception handling statements|[throw](throw.md), [try-catch](try-catch.md), [try-finally](try-finally.md), [try-catch-finally](try-catch-finally.md)| |[Checked and unchecked](checked-and-unchecked.md)|[checked](checked.md), [unchecked](unchecked.md)| [fixed statement](fixed-statement.md)|[fixed](fixed-statement.md)| |[lock statement](lock-statement.md)|[lock](lock-statement.md)| diff --git a/docs/csharp/language-reference/keywords/throw.md b/docs/csharp/language-reference/keywords/throw.md index bbff7c0963b99..7170d9cbbd560 100644 --- a/docs/csharp/language-reference/keywords/throw.md +++ b/docs/csharp/language-reference/keywords/throw.md @@ -70,5 +70,4 @@ Starting with C# 7.0, `throw` can be used as an expression as well as a statemen - [try-catch](try-catch.md) - [The try, catch, and throw Statements in C++](try-catch.md) - [C# Keywords](index.md) -- [Exception Handling Statements](exception-handling-statements.md) - [How to: Explicitly Throw Exceptions](../../../standard/exceptions/how-to-explicitly-throw-exceptions.md) diff --git a/docs/csharp/language-reference/keywords/toc.yml b/docs/csharp/language-reference/keywords/toc.yml index b986675583f36..8f3a2ca74f7e9 100644 --- a/docs/csharp/language-reference/keywords/toc.yml +++ b/docs/csharp/language-reference/keywords/toc.yml @@ -2,11 +2,11 @@ href: index.md items: - name: Types - href: types.md items: - name: Value Types - href: value-types.md items: + - name: Features of value types + href: value-types.md - name: bool href: bool.md - name: byte @@ -38,8 +38,9 @@ - name: ushort href: ushort.md - name: Reference Types - href: reference-types.md items: + - name: Features of reference types + href: reference-types.md - name: class href: class.md - name: delegate @@ -57,7 +58,6 @@ - name: var href: var.md - name: Reference tables for types - href: reference-tables-for-types.md items: - name: Built-in types table href: built-in-types-table.md @@ -76,11 +76,11 @@ - name: Formatting numeric results table href: formatting-numeric-results-table.md - name: Modifiers - href: modifiers.md items: - name: Access Modifiers - href: access-modifiers.md items: + - name: Quick reference + href: access-modifiers.md - name: Accessibility Levels href: accessibility-levels.md - name: Accessibility Domain @@ -128,17 +128,16 @@ - name: volatile href: volatile.md - name: Statement Keywords - href: statement-keywords.md items: + - name: Statement categories + href: statement-keywords.md - name: Selection Statements - href: selection-statements.md items: - name: if-else href: if-else.md - name: switch href: switch.md - name: Iteration Statements - href: iteration-statements.md items: - name: do href: do.md @@ -149,7 +148,6 @@ - name: while href: while.md - name: Jump Statements - href: jump-statements.md items: - name: break href: break.md @@ -160,7 +158,6 @@ - name: return href: return.md - name: Exception Handling Statements - href: exception-handling-statements.md items: - name: throw href: throw.md @@ -171,8 +168,9 @@ - name: try-catch-finally href: try-catch-finally.md - name: Checked and Unchecked - href: checked-and-unchecked.md items: + - name: Overview + href: checked-and-unchecked.md - name: checked href: checked.md - name: unchecked @@ -182,8 +180,9 @@ - name: lock Statement href: lock-statement.md - name: Method Parameters - href: method-parameters.md items: + - name: Passing parameters + href: method-parameters.md - name: params href: params.md - name: in (Parameter Modifier) @@ -193,13 +192,13 @@ - name: out (Parameter Modifier) href: out-parameter-modifier.md - name: Namespace Keywords - href: namespace-keywords.md items: - name: namespace href: namespace.md - name: using - href: using.md items: + - name: Contexts for using + href: using.md - name: using Directive href: using-directive.md - name: using static Directive @@ -209,7 +208,6 @@ - name: extern alias href: extern-alias.md - name: Operator Keywords - href: operator-keywords.md items: - name: as href: as.md @@ -218,8 +216,9 @@ - name: is href: is.md - name: new - href: new.md items: + - name: new operator, modifier and constraint + href: new.md - name: new Operator href: new-operator.md - name: new Modifier @@ -235,7 +234,6 @@ - name: nameof href: nameof.md - name: Conversion Keywords - href: conversion-keywords.md items: - name: explicit href: explicit.md @@ -244,14 +242,12 @@ - name: operator href: operator.md - name: Access Keywords - href: access-keywords.md items: - name: base href: base.md - name: this href: this.md - name: Literal Keywords - href: literal-keywords.md items: - name: "null" href: null.md @@ -262,8 +258,9 @@ - name: default href: default.md - name: Contextual Keywords - href: contextual-keywords.md items: + - name: Quick reference + href: contextual-keywords.md - name: add href: add.md - name: get @@ -287,8 +284,9 @@ - name: yield href: yield.md - name: Query Keywords - href: query-keywords.md items: + - name: Quick reference + href: query-keywords.md - name: from clause href: from-clause.md - name: where clause diff --git a/docs/csharp/language-reference/keywords/try-catch-finally.md b/docs/csharp/language-reference/keywords/try-catch-finally.md index 5ce23a7de3a54..5dde5ac041102 100644 --- a/docs/csharp/language-reference/keywords/try-catch-finally.md +++ b/docs/csharp/language-reference/keywords/try-catch-finally.md @@ -31,7 +31,6 @@ A common usage of `catch` and `finally` together is to obtain and use resources - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) - [try, throw, and catch Statements (C++)](/cpp/cpp/try-throw-and-catch-statements-cpp) -- [Exception Handling Statements](exception-handling-statements.md) - [throw](throw.md) - [How to: Explicitly Throw Exceptions](../../../standard/exceptions/how-to-explicitly-throw-exceptions.md) - [using Statement](using-statement.md) diff --git a/docs/csharp/language-reference/keywords/try-catch.md b/docs/csharp/language-reference/keywords/try-catch.md index 312ae1f3e3b59..422497ef8dfd7 100644 --- a/docs/csharp/language-reference/keywords/try-catch.md +++ b/docs/csharp/language-reference/keywords/try-catch.md @@ -180,7 +180,6 @@ Each of the three tasks causes an exception. The `catch` block iterates through - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) - [try, throw, and catch Statements (C++)](/cpp/cpp/try-throw-and-catch-statements-cpp) -- [Exception Handling Statements](exception-handling-statements.md) - [throw](throw.md) - [try-finally](try-finally.md) - [How to: Explicitly Throw Exceptions](../../../standard/exceptions/how-to-explicitly-throw-exceptions.md) diff --git a/docs/csharp/language-reference/keywords/try-finally.md b/docs/csharp/language-reference/keywords/try-finally.md index 66f1949fb6674..36502f0a172ff 100644 --- a/docs/csharp/language-reference/keywords/try-finally.md +++ b/docs/csharp/language-reference/keywords/try-finally.md @@ -43,7 +43,6 @@ C# also contains the [using statement](using-statement.md), which provides simil - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) - [try, throw, and catch Statements (C++)](/cpp/cpp/try-throw-and-catch-statements-cpp) -- [Exception Handling Statements](exception-handling-statements.md) - [throw](throw.md) - [try-catch](try-catch.md) - [How to: Explicitly Throw Exceptions](../../../standard/exceptions/how-to-explicitly-throw-exceptions.md) diff --git a/docs/csharp/language-reference/keywords/typeof.md b/docs/csharp/language-reference/keywords/typeof.md index 531fe91cde48b..fc6697ff45ed2 100644 --- a/docs/csharp/language-reference/keywords/typeof.md +++ b/docs/csharp/language-reference/keywords/typeof.md @@ -60,4 +60,3 @@ For more information, see [The typeof operator](~/_csharplang/spec/expressions.m - [C# Programming Guide](../../../csharp/programming-guide/index.md) - [C# Keywords](../../../csharp/language-reference/keywords/index.md) - [is](../../../csharp/language-reference/keywords/is.md) -- [Operator Keywords](../../../csharp/language-reference/keywords/operator-keywords.md) diff --git a/docs/csharp/language-reference/keywords/types.md b/docs/csharp/language-reference/keywords/types.md deleted file mode 100644 index 31ad0040656d0..0000000000000 --- a/docs/csharp/language-reference/keywords/types.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Types - C# Reference" -ms.custom: seodec18 - -ms.date: 07/20/2015 -helpviewer_keywords: - - "types [C#]" - - "data types [C#], type system" -ms.assetid: 16b984df-f417-4e02-b1e6-4589d4a614ea ---- -# Types (C# Reference) - -The C# typing system contains the following categories: - -- [Value types](value-types.md) - -- [Reference types](reference-types.md) - -- [Pointer types](../../programming-guide/unsafe-code-pointers/pointer-types.md) - - Variables that are value types store data, and those that are reference types store references to the actual data. Instances of reference types are also referred to as objects. Pointer types can be used only in [unsafe](unsafe.md) mode. - - It's possible to convert a value type to a reference type, and back again to a value type, by using [boxing and unboxing](../../../csharp/programming-guide/types/boxing-and-unboxing.md). With the exception of a boxed value type, you cannot convert a reference type to a value type. - - This section also introduces [void](void.md). - -## See also - -- [C# Reference](../index.md) -- [C# Programming Guide](../../programming-guide/index.md) -- [C# Keywords](index.md) -- [Reference Tables for Types](reference-tables-for-types.md) -- [Casting and Type Conversions](../../programming-guide/types/casting-and-type-conversions.md) -- [Types](../../programming-guide/types/index.md) diff --git a/docs/csharp/language-reference/keywords/using-directive.md b/docs/csharp/language-reference/keywords/using-directive.md index 3faa14cffa93c..c69c83df5640d 100644 --- a/docs/csharp/language-reference/keywords/using-directive.md +++ b/docs/csharp/language-reference/keywords/using-directive.md @@ -96,6 +96,5 @@ For more information, see [Using directives](~/_csharplang/spec/namespaces.md#us - [C# Programming Guide](../../programming-guide/index.md) - [Using Namespaces](../../programming-guide/namespaces/using-namespaces.md) - [C# Keywords](index.md) -- [Namespace Keywords](namespace-keywords.md) - [Namespaces](../../programming-guide/namespaces/index.md) - [using Statement](using-statement.md) diff --git a/docs/csharp/language-reference/keywords/using-static.md b/docs/csharp/language-reference/keywords/using-static.md index 2cc6dec351a7f..5f886f8aafd48 100644 --- a/docs/csharp/language-reference/keywords/using-static.md +++ b/docs/csharp/language-reference/keywords/using-static.md @@ -52,5 +52,4 @@ In the example, the `using static` directive could also have been applied to the - [C# Reference](../index.md) - [C# Keywords](index.md) - [Using Namespaces](../../programming-guide/namespaces/using-namespaces.md) -- [Namespace Keywords](namespace-keywords.md) - [Namespaces](../../programming-guide/namespaces/index.md) diff --git a/docs/csharp/language-reference/keywords/using.md b/docs/csharp/language-reference/keywords/using.md index 2ceba1ccab09b..7f8df1c0ace86 100644 --- a/docs/csharp/language-reference/keywords/using.md +++ b/docs/csharp/language-reference/keywords/using.md @@ -22,6 +22,5 @@ The `using` keyword has three major uses: - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [Namespace Keywords](namespace-keywords.md) - [Namespaces](../../programming-guide/namespaces/index.md) - [extern](extern.md) diff --git a/docs/csharp/language-reference/keywords/value-types-table.md b/docs/csharp/language-reference/keywords/value-types-table.md index d5185c06e0f27..2a2dd356348d4 100644 --- a/docs/csharp/language-reference/keywords/value-types-table.md +++ b/docs/csharp/language-reference/keywords/value-types-table.md @@ -47,7 +47,6 @@ If a [real numerical literal](~/_csharplang/spec/lexical-structure.md#real-liter - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) -- [Reference tables for types](reference-tables-for-types.md) - [Default values table](default-values-table.md) - [Value types](value-types.md) - [Formatting numeric results table](formatting-numeric-results-table.md) diff --git a/docs/csharp/language-reference/keywords/value-types.md b/docs/csharp/language-reference/keywords/value-types.md index a689959df1861..f60c06a4bb7e5 100644 --- a/docs/csharp/language-reference/keywords/value-types.md +++ b/docs/csharp/language-reference/keywords/value-types.md @@ -103,6 +103,5 @@ For information about formatting the output of numeric types, see [Formatting nu - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) - [Types](types.md) -- [Reference tables for types](reference-tables-for-types.md) - [Reference Types](reference-types.md) - [Nullable types](../../programming-guide/nullable-types/index.md) diff --git a/docs/csharp/language-reference/keywords/where-clause.md b/docs/csharp/language-reference/keywords/where-clause.md index 72d67f990de54..29fdd89fac2c4 100644 --- a/docs/csharp/language-reference/keywords/where-clause.md +++ b/docs/csharp/language-reference/keywords/where-clause.md @@ -47,4 +47,4 @@ At compile time the `where` keyword is converted into a call to the can be passed into a `catch` block. For more information on exceptions, see [Exception Handling Statements](../../csharp/language-reference/keywords/exception-handling-statements.md). + An attempt was made to pass a predefined data type into a [catch](../../csharp/language-reference/keywords/try-catch.md) block. Only data types that derive from can be passed into a `catch` block. For more information on exceptions, see [Exceptions and Exception Handling](../../csharp/programming-guide/exceptions/index.md). ## Example The following sample generates CS1015: diff --git a/docs/csharp/misc/cs1017.md b/docs/csharp/misc/cs1017.md index efa7afaefacde..39c4e231e61cf 100644 --- a/docs/csharp/misc/cs1017.md +++ b/docs/csharp/misc/cs1017.md @@ -10,7 +10,7 @@ ms.assetid: e0902e8a-b042-4711-a8a6-83456a3f88cb # Compiler Error CS1017 Catch clauses cannot follow the general catch clause of a try statement - A `catch` block that does not take any parameters must be the last in a series of `catch` blocks. For more information on exceptions, see [Exception Handling Statements](../../csharp/language-reference/keywords/exception-handling-statements.md). + A `catch` block that does not take any parameters must be the last in a series of `catch` blocks. For more information on exceptions, see [Exceptions and Exception Handling](../../csharp/programming-guide/exceptions/index.md). ## Example The following sample generates CS1017: diff --git a/docs/csharp/misc/cs1524.md b/docs/csharp/misc/cs1524.md index 4e7ff3078d29a..7eb86f481d207 100644 --- a/docs/csharp/misc/cs1524.md +++ b/docs/csharp/misc/cs1524.md @@ -12,7 +12,7 @@ Expected catch or finally A `try` block must be followed by a `catch` or `finally` block. - For more information on exceptions, see [Exception Handling Statements](../../csharp/language-reference/keywords/exception-handling-statements.md). + For more information on exceptions, see [Exceptions and Exception Handling](../../csharp/programming-guide/exceptions/index.md). ## Example The following sample generates CS1524: diff --git a/docs/csharp/programming-guide/classes-and-structs/anonymous-types.md b/docs/csharp/programming-guide/classes-and-structs/anonymous-types.md index 586513cda6586..e87557a19a1f6 100644 --- a/docs/csharp/programming-guide/classes-and-structs/anonymous-types.md +++ b/docs/csharp/programming-guide/classes-and-structs/anonymous-types.md @@ -53,5 +53,5 @@ var anonArray = new[] { new { name = "apple", diam = 4 }, new { name = "grape", - [C# Programming Guide](../../../csharp/programming-guide/index.md) - [Object and Collection Initializers](../../../csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md) -- [Getting Started with LINQ in C#](../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md) +- [Getting Started with LINQ in C#](../../../csharp/programming-guide/concepts/linq/index.md) - [LINQ Query Expressions](../../../csharp/programming-guide/linq-query-expressions/index.md) diff --git a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-and-use-assemblies-using-the-command-line.md b/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-and-use-assemblies-using-the-command-line.md deleted file mode 100644 index a5eb078e2beee..0000000000000 --- a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-and-use-assemblies-using-the-command-line.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: "How to: Create and Use Assemblies Using the Command Line (C#)" -ms.date: 07/20/2015 -ms.assetid: 408ddce3-89e3-4e12-8353-34a49beeb72b ---- -# How to: Create and Use Assemblies Using the Command Line (C#) -An assembly, or a dynamic linking library (DLL), is linked to your program at run time. To demonstrate building and using a DLL, consider the following scenario: - -- `MathLibrary.DLL`: The library file that contains the methods to be called at run time. In this example, the DLL contains two methods, `Add` and `Multiply`. - -- `Add`: The source file that contains the method `Add`. It returns the sum of its parameters. The class `AddClass` that contains the method `Add` is a member of the namespace `UtilityMethods`. - -- `Mult`: The source code that contains the method `Multiply`. It returns the product of its parameters. The class `MultiplyClass` that contains the method `Multiply` is also a member of the namespace `UtilityMethods`. - -- `TestCode`: The file that contains the `Main` method. It uses the methods in the DLL file to calculate the sum and the product of the run-time arguments. - -## Example - -```csharp -// File: Add.cs -namespace UtilityMethods -{ - public class AddClass - { - public static long Add(long i, long j) - { - return (i + j); - } - } -} -``` - -```csharp -// File: Mult.cs -namespace UtilityMethods -{ - public class MultiplyClass - { - public static long Multiply(long x, long y) - { - return (x * y); - } - } -} -``` - -```csharp -// File: TestCode.cs - -using UtilityMethods; - -class TestCode -{ - static void Main(string[] args) - { - System.Console.WriteLine("Calling methods from MathLibrary.DLL:"); - - if (args.Length != 2) - { - System.Console.WriteLine("Usage: TestCode "); - return; - } - - long num1 = long.Parse(args[0]); - long num2 = long.Parse(args[1]); - - long sum = AddClass.Add(num1, num2); - long product = MultiplyClass.Multiply(num1, num2); - - System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum); - System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product); - } -} -/* Output (assuming 1234 and 5678 are entered as command-line arguments): - Calling methods from MathLibrary.DLL: - 1234 + 5678 = 6912 - 1234 * 5678 = 7006652 -*/ -``` - - This file contains the algorithm that uses the DLL methods, `Add` and `Multiply`. It starts with parsing the arguments entered from the command line, `num1` and `num2`. Then it calculates the sum by using the `Add` method on the `AddClass` class, and the product by using the `Multiply` method on the `MultiplyClass` class. - - Notice that the `using` directive at the beginning of the file enables you to use the unqualified class names to reference the DLL methods at compile time, as follows: - -```csharp -MultiplyClass.Multiply(num1, num2); -``` - - Otherwise, you have to use the fully qualified names, as follows: - -```csharp -UtilityMethods.MultiplyClass.Multiply(num1, num2); -``` - -## Execution - To run the program, enter the name of the EXE file, followed by two numbers, as follows: - - `TestCode 1234 5678` - -## See also - -- [C# Programming Guide](../../../../csharp/programming-guide/index.md) -- [Assemblies in .NET](../../../../standard/assembly/index.md) -- [Creating a Class to Hold DLL Functions](../../../../framework/interop/creating-a-class-to-hold-dll-functions.md) diff --git a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-signed-friend-assemblies.md b/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-signed-friend-assemblies.md deleted file mode 100644 index 926947cf27ba9..0000000000000 --- a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-signed-friend-assemblies.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: "How to: Create Signed Friend Assemblies (C#)" -ms.date: 07/20/2015 -ms.assetid: bab62063-61e6-453f-905f-77673df9534e ---- -# How to: Create Signed Friend Assemblies (C#) -This example shows how to use friend assemblies with assemblies that have strong names. Both assemblies must be strong named. Although both assemblies in this example use the same keys, you could use different keys for two assemblies. - -### To create a signed assembly and a friend assembly - -1. Open a command prompt. - -2. Use the following sequence of commands with the Strong Name tool to generate a keyfile and to display its public key. For more information, see [Sn.exe (Strong Name Tool)](../../../../framework/tools/sn-exe-strong-name-tool.md). - - 1. Generate a strong-name key for this example and store it in the file FriendAssemblies.snk: - - `sn -k FriendAssemblies.snk` - - 2. Extract the public key from FriendAssemblies.snk and put it into FriendAssemblies.publickey: - - `sn -p FriendAssemblies.snk FriendAssemblies.publickey` - - 3. Display the public key stored in the file FriendAssemblies.publickey: - - `sn -tp FriendAssemblies.publickey` - -3. Create a C# file named `friend_signed_A` that contains the following code. The code uses the attribute to declare friend_signed_B as a friend assembly. - - The Strong Name tool generates a new public key every time it runs. Therefore, you must replace the public key in the following code with the public key you just generated, as shown in the following example. - - ```csharp - // friend_signed_A.cs - // Compile with: - // csc /target:library /keyfile:FriendAssemblies.snk friend_signed_A.cs - using System.Runtime.CompilerServices; - - [assembly: InternalsVisibleTo("friend_signed_B, PublicKey=0024000004800000940000000602000000240000525341310004000001000100e3aedce99b7e10823920206f8e46cd5558b4ec7345bd1a5b201ffe71660625dcb8f9a08687d881c8f65a0dcf042f81475d2e88f3e3e273c8311ee40f952db306c02fbfc5d8bc6ee1e924e6ec8fe8c01932e0648a0d3e5695134af3bb7fab370d3012d083fa6b83179dd3d031053f72fc1f7da8459140b0af5afc4d2804deccb6")] - class Class1 - { - public void Test() - { - System.Console.WriteLine("Class1.Test"); - System.Console.ReadLine(); - } - } - ``` - -4. Compile and sign friend_signed_A by using the following command. - - ```csharp - csc /target:library /keyfile:FriendAssemblies.snk friend_signed_A.cs - ``` - -5. Create a C# file that is named `friend_signed_B` and contains the following code. Because friend_signed_A specifies friend_signed_B as a friend assembly, the code in friend_signed_B can access `internal` types and members from friend_signed_A. The file contains the following code. - - ```csharp - // friend_signed_B.cs - // Compile with: - // csc /keyfile:FriendAssemblies.snk /r:friend_signed_A.dll /out:friend_signed_B.exe friend_signed_B.cs - public class Program - { - static void Main() - { - Class1 inst = new Class1(); - inst.Test(); - } - } - ``` - -6. Compile and sign friend_signed_B by using the following command. - - ```csharp - csc /keyfile:FriendAssemblies.snk /r:friend_signed_A.dll /out:friend_signed_B.exe friend_signed_B.cs - ``` - - The name of the assembly generated by the compiler must match the friend assembly name passed to the attribute. You must explicitly specify the name of the output assembly (.exe or .dll) by using the `/out` compiler option. For more information, see [/out (C# Compiler Options)](../../../../csharp/language-reference/compiler-options/out-compiler-option.md). - -7. Run the friend_signed_B.exe file. - - The program prints the string "Class1.Test". - -## .NET Framework Security - There are similarities between the attribute and the class. The main difference is that can demand security permissions to run a particular section of code, whereas the attribute controls the visibility of `internal` types and members. - -## See also - -- -- [Assemblies in .NET](../../../../standard/assembly/index.md) -- [Friend Assemblies](../../../../standard/assembly/friend-assemblies.md) -- [How to: Create Unsigned Friend Assemblies (C#)](../../../../csharp/programming-guide/concepts/assemblies-gac/how-to-create-unsigned-friend-assemblies.md) -- [/keyfile](../../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md) -- [Sn.exe (Strong Name Tool)](../../../../framework/tools/sn-exe-strong-name-tool.md) -- [Creating and Using Strong-Named Assemblies](../../../../../docs/framework/app-domains/create-and-use-strong-named-assemblies.md) -- [C# Programming Guide](../../../../csharp/programming-guide/index.md) diff --git a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-unsigned-friend-assemblies.md b/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-unsigned-friend-assemblies.md deleted file mode 100644 index de15f81a54ebb..0000000000000 --- a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-create-unsigned-friend-assemblies.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: "How to: Create Unsigned Friend Assemblies (C#)" -ms.date: 07/20/2015 -ms.assetid: 78cbc4f0-b021-4141-a4ff-eb4edbd814ca ---- -# How to: Create Unsigned Friend Assemblies (C#) -This example shows how to use friend assemblies with assemblies that are unsigned. - -### To create an assembly and a friend assembly - -1. Open a command prompt. - -2. Create a C# file named `friend_unsigned_A.` that contains the following code. The code uses the attribute to declare friend_unsigned_B as a friend assembly. - - ```csharp - // friend_unsigned_A.cs - // Compile with: - // csc /target:library friend_unsigned_A.cs - using System.Runtime.CompilerServices; - using System; - - [assembly: InternalsVisibleTo("friend_unsigned_B")] - - // Type is internal by default. - class Class1 - { - public void Test() - { - Console.WriteLine("Class1.Test"); - } - } - - // Public type with internal member. - public class Class2 - { - internal void Test() - { - Console.WriteLine("Class2.Test"); - } - } - ``` - -3. Compile and sign friend_unsigned_A by using the following command. - - ```csharp - csc /target:library friend_unsigned_A.cs - ``` - -4. Create a C# file named `friend_unsigned_B` that contains the following code. Because friend_unsigned_A specifies friend_unsigned_B as a friend assembly, the code in friend_unsigned_B can access `internal` types and members from friend_unsigned_A. - - ```csharp - // friend_unsigned_B.cs - // Compile with: - // csc /r:friend_unsigned_A.dll /out:friend_unsigned_B.exe friend_unsigned_B.cs - public class Program - { - static void Main() - { - // Access an internal type. - Class1 inst1 = new Class1(); - inst1.Test(); - - Class2 inst2 = new Class2(); - // Access an internal member of a public type. - inst2.Test(); - - System.Console.ReadLine(); - } - } - ``` - -5. Compile friend_unsigned_B by using the following command. - - ```csharp - csc /r:friend_unsigned_A.dll /out:friend_unsigned_B.exe friend_unsigned_B.cs - ``` - - The name of the assembly that is generated by the compiler must match the friend assembly name that is passed to the attribute. You must explicitly specify the name of the output assembly (.exe or .dll) by using the `/out` compiler option. For more information, see [/out (C# Compiler Options)](../../../../csharp/language-reference/compiler-options/out-compiler-option.md). - -6. Run the friend_unsigned_B.exe file. - - The program prints two strings: "Class1.Test" and "Class2.Test". - -## .NET Framework Security - There are similarities between the attribute and the class. The main difference is that can demand security permissions to run a particular section of code, whereas the attribute controls the visibility of `internal` types and members. - -## See also - -- -- [Assemblies in .NET](../../../../standard/assembly/index.md) -- [Friend Assemblies](../../../../standard/assembly/friend-assemblies.md) -- [How to: Create Signed Friend Assemblies (C#)](../../../../csharp/programming-guide/concepts/assemblies-gac/how-to-create-signed-friend-assemblies.md) -- [C# Programming Guide](../../../../csharp/programming-guide/index.md) diff --git a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-determine-if-a-file-is-an-assembly.md b/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-determine-if-a-file-is-an-assembly.md deleted file mode 100644 index 736e5142c6c1e..0000000000000 --- a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-determine-if-a-file-is-an-assembly.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "How to: Determine If a File Is an Assembly (C#)" -ms.date: 07/20/2015 -ms.assetid: ea5186bb-5bff-4dcb-bde9-d6ba4e2edd00 ---- -# How to: Determine If a File Is an Assembly (C#) -A file is an assembly if and only if it is managed, and contains an assembly entry in its metadata. For more information on assemblies and metadata, see the topic [Assembly Manifest](../../../../../docs/framework/app-domains/assembly-manifest.md). - -### How to manually determine if a file is an assembly - -1. Start the [Ildasm.exe (IL Disassembler)](../../../../framework/tools/ildasm-exe-il-disassembler.md). - -2. Load the file you wish to test. - -3. If **ILDASM** reports that the file is not a portable executable (PE) file, then it is not an assembly. For more information, see the topic [How to: View Assembly Contents](../../../../framework/app-domains/how-to-view-assembly-contents.md). - -### How to programmatically determine if a file is an assembly - -1. Call the method, passing the full file path and name of the file you are testing. - -2. If a exception is thrown, the file is not an assembly. - -## Example - This example tests a DLL to see if it is an assembly. - -```csharp -class TestAssembly -{ - static void Main() - { - - try - { - System.Reflection.AssemblyName testAssembly = - System.Reflection.AssemblyName.GetAssemblyName(@"C:\Windows\Microsoft.NET\Framework\v3.5\System.Net.dll"); - - System.Console.WriteLine("Yes, the file is an assembly."); - } - - catch (System.IO.FileNotFoundException) - { - System.Console.WriteLine("The file cannot be found."); - } - - catch (System.BadImageFormatException) - { - System.Console.WriteLine("The file is not an assembly."); - } - - catch (System.IO.FileLoadException) - { - System.Console.WriteLine("The assembly has already been loaded."); - } - } -} -/* Output (with .NET Framework 3.5 installed): - Yes, the file is an assembly. -*/ -``` - - The method loads the test file, and then releases it once the information is read. - -## See also - -- -- [C# Programming Guide](../../../../csharp/programming-guide/index.md) -- [Assemblies in .NET](../../../../standard/assembly/index.md) diff --git a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-load-and-unload-assemblies.md b/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-load-and-unload-assemblies.md deleted file mode 100644 index 388c120379bc5..0000000000000 --- a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-load-and-unload-assemblies.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "How to: Load and Unload Assemblies (C#)" -ms.date: 07/20/2015 -ms.assetid: 6a4f490f-3576-471f-9533-003737cad4a3 ---- -# How to: Load and Unload Assemblies (C#) -The assemblies referenced by your program will automatically be loaded at build time, but it is also possible to load specific assemblies into the current application domain at runtime. For more information, see [How to: Load Assemblies into an Application Domain](../../../../framework/app-domains/how-to-load-assemblies-into-an-application-domain.md). - - There is no way to unload an individual assembly without unloading all of the application domains that contain it. Even if the assembly goes out of scope, the actual assembly file will remain loaded until all application domains that contain it are unloaded. - - If you want to unload some assemblies but not others, consider creating a new application domain, executing the code inside that domain, and then unloading that application domain. For more information, see [How to: Unload an Application Domain](../../../../framework/app-domains/how-to-unload-an-application-domain.md). - -### To load an assembly into an application domain - -1. Use one of the several load methods contained in the classes and . For more information, see [How to: Load Assemblies into an Application Domain](../../../../framework/app-domains/how-to-load-assemblies-into-an-application-domain.md). - -### To unload an application domain - -1. There is no way to unload an individual assembly without unloading all of the application domains that contain it. Use the `Unload` method from to unload the application domains. For more information, see [How to: Unload an Application Domain](../../../../framework/app-domains/how-to-unload-an-application-domain.md). - -## See also - -- [C# Programming Guide](../../../../csharp/programming-guide/index.md) -- [Assemblies in .NET](../../../../standard/assembly/index.md) -- [How to: Load Assemblies into an Application Domain](../../../../framework/app-domains/how-to-load-assemblies-into-an-application-domain.md) diff --git a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-share-an-assembly-with-other-applications.md b/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-share-an-assembly-with-other-applications.md deleted file mode 100644 index 1ff887099927f..0000000000000 --- a/docs/csharp/programming-guide/concepts/assemblies-gac/how-to-share-an-assembly-with-other-applications.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "How to: Share an Assembly with Other Applications (C#)" -ms.date: 07/20/2015 -ms.assetid: c30e972b-1693-4e05-b115-c31831fdf9f2 ---- -# How to: Share an Assembly with Other Applications (C#) -Assemblies can be private or shared: by default, most simple programs consist of a private assembly because they are not intended to be used by other applications. - - In order to share an assembly with other applications, it must be placed in the [Global Assembly Cache](../../../../framework/app-domains/gac.md) (GAC). - -### Sharing an assembly - -1. Create your assembly. For more information, see [Creating Assemblies](../../../../framework/app-domains/create-assemblies.md). - -2. Assign a strong name to your assembly. For more information, see [How to: Sign an Assembly with a Strong Name](../../../../framework/app-domains/how-to-sign-an-assembly-with-a-strong-name.md). - -3. Assign version information to your assembly. For more information, see [Assembly Versioning](../../../../../docs/framework/app-domains/assembly-versioning.md). - -4. Add your assembly to the Global Assembly Cache. For more information, see [How to: Install an Assembly into the Global Assembly Cache](../../../../framework/app-domains/how-to-install-an-assembly-into-the-gac.md). - -5. Access the types contained in the assembly from the other applications. For more information, see [How to: Reference a Strong-Named Assembly](../../../../framework/app-domains/how-to-reference-a-strong-named-assembly.md). - -## See also - -- [C# Programming Guide](../../../../csharp/programming-guide/index.md) -- [Programming with Assemblies](../../../../framework/app-domains/programming-with-assemblies.md) diff --git a/docs/csharp/programming-guide/concepts/assemblies-gac/toc.yml b/docs/csharp/programming-guide/concepts/assemblies-gac/toc.yml deleted file mode 100644 index 4156921773f57..0000000000000 --- a/docs/csharp/programming-guide/concepts/assemblies-gac/toc.yml +++ /dev/null @@ -1,20 +0,0 @@ -- name: Assemblies and the Global Assembly Cache - href: index.md - items: - - name: Friend Assemblies - href: friend-assemblies.md - items: - - name: "How to: Create Unsigned Friend Assemblies" - href: how-to-create-unsigned-friend-assemblies.md - - name: "How to: Create Signed Friend Assemblies" - href: how-to-create-signed-friend-assemblies.md - - name: "How to: Create and Use Assemblies Using the Command Line" - href: how-to-create-and-use-assemblies-using-the-command-line.md - - name: "How to: Determine If a File Is an Assembly" - href: how-to-determine-if-a-file-is-an-assembly.md - - name: "How to: Load and Unload Assemblies" - href: how-to-load-and-unload-assemblies.md - - name: "How to: Share an Assembly with Other Applications" - href: how-to-share-an-assembly-with-other-applications.md - - name: "Walkthrough: Embedding Types from Managed Assemblies in Visual Studio" - href: walkthrough-embedding-types-from-managed-assemblies-in-visual-studio.md diff --git a/docs/csharp/programming-guide/concepts/assemblies-gac/walkthrough-embedding-types-from-managed-assemblies-in-visual-studio.md b/docs/csharp/programming-guide/concepts/assemblies-gac/walkthrough-embedding-types-from-managed-assemblies-in-visual-studio.md deleted file mode 100644 index dfc37583275c6..0000000000000 --- a/docs/csharp/programming-guide/concepts/assemblies-gac/walkthrough-embedding-types-from-managed-assemblies-in-visual-studio.md +++ /dev/null @@ -1,236 +0,0 @@ ---- -title: "Walkthrough: Embedding Types from Managed Assemblies in Visual Studio (C#)" -ms.date: 07/20/2015 -ms.assetid: 55ed13c9-c5bb-4bc2-bcd8-0587eb568864 ---- - -# Walkthrough: Embedding Types from Managed Assemblies in Visual Studio (C#) - -If you embed type information from a strong-named managed assembly, you can loosely couple types in an application to achieve version independence. That is, your program can be written to use types from multiple versions of a managed library without having to be recompiled for each version. - -Type embedding is frequently used with COM interop, such as an application that uses automation objects from Microsoft Office. Embedding type information enables the same build of a program to work with different versions of Microsoft Office on different computers. However, you can also use type embedding with a fully managed solution. - -Type information can be embedded from an assembly that has the following characteristics: - -- The assembly exposes at least one public interface. - -- The embedded interfaces are annotated with a `ComImport` attribute and a `Guid` attribute (and a unique GUID). - -- The assembly is annotated with the `ImportedFromTypeLib` attribute or the `PrimaryInteropAssembly` attribute, and an assembly-level `Guid` attribute. (By default, Visual C# project templates include an assembly-level `Guid` attribute.) - -After you have specified the public interfaces that can be embedded, you can create runtime classes that implement those interfaces. A client program can then embed the type information for those interfaces at design time by referencing the assembly that contains the public interfaces and setting the `Embed Interop Types` property of the reference to `True`. This is equivalent to using the command line compiler and referencing the assembly by using the `/link` compiler option. The client program can then load instances of your runtime objects typed as those interfaces. If you create a new version of your strong-named runtime assembly, the client program does not have to be recompiled with the updated runtime assembly. Instead, the client program continues to use whichever version of the runtime assembly is available to it, using the embedded type information for the public interfaces. - -Because the primary function of type embedding is to support embedding of type information from COM interop assemblies, the following limitations apply when you embed type information in a fully managed solution: - -- Only attributes specific to COM interop are embedded; other attributes are ignored. - -- If a type uses generic parameters and the type of the generic parameter is an embedded type, that type cannot be used across an assembly boundary. Examples of crossing an assembly boundary include calling a method from another assembly or a deriving a type from a type defined in another assembly. - -- Constants are not embedded. - -- The class does not support an embedded type as a key. You can implement your own dictionary type to support an embedded type as a key. - -In this walkthrough, you will do the following: - -- Create a strong-named assembly that has a public interface that contains type information that can be embedded. - -- Create a strong-named runtime assembly that implements that public interface. - -- Create a client program that embeds the type information from the public interface and creates an instance of the class from the runtime assembly. - -- Modify and rebuild the runtime assembly. - -- Run the client program to see that the new version of the runtime assembly is being used without having to recompile the client program. - -[!INCLUDE[note_settings_general](~/includes/note-settings-general-md.md)] - -## Creating an Interface - -#### To create the type equivalence interface project - -1. In Visual Studio, on the **File** menu, choose **New** and then click **Project**. - -2. In the **New Project** dialog box, in the **Project Types** pane, make sure that **Windows** is selected. Select **Class Library** in the **Templates** pane. In the **Name** box, type `TypeEquivalenceInterface`, and then click **OK**. The new project is created. - -3. In **Solution Explorer**, right-click the Class1.cs file and click **Rename**. Rename the file to `ISampleInterface.cs` and press ENTER. Renaming the file will also rename the class to `ISampleInterface`. This class will represent the public interface for the class. - -4. Right-click the TypeEquivalenceInterface project and click **Properties**. Click the **Build** tab. Set the output path to a valid location on your development computer, such as `C:\TypeEquivalenceSample`. This location will also be used in a later step in this walkthrough. - -5. While still editing the project properties, click the **Signing** tab. Select the **Sign the assembly** option. In the **Choose a strong name key file** list, click **\**. In the **Key file name** box, type `key.snk`. Clear the **Protect my key file with a password** check box. Click **OK**. - -6. Open the ISampleInterface.cs file. Add the following code to the ISampleInterface class file to create the ISampleInterface interface. - - ```csharp - using System; - using System.Runtime.InteropServices; - - namespace TypeEquivalenceInterface - { - [ComImport] - [Guid("8DA56996-A151-4136-B474-32784559F6DF")] - public interface ISampleInterface - { - void GetUserInput(); - string UserInput { get; } - } - } - ``` - -7. On the **Tools** menu, click **Create Guid**. In the **Create GUID** dialog box, click **Registry Format** and then click **Copy**. Click **Exit**. - -8. In the `Guid` attribute, delete the sample GUID and paste in the GUID that you copied from the **Create GUID** dialog box. Remove the braces ({}) from the copied GUID. - -9. In **Solution Explorer**, expand the **Properties** folder. Double-click the AssemblyInfo.cs file. Add the following attribute to the file. - - ```csharp - [assembly: ImportedFromTypeLib("")] - ``` - - Save the file. - -10. Save the project. - -11. Right-click the TypeEquivalenceInterface project and click **Build**. The class library .dll file is compiled and saved to the specified build output path (for example, C:\TypeEquivalenceSample). - -## Creating a Runtime Class - -#### To create the type equivalence runtime project - -1. In Visual Studio, on the **File** menu, point to **New** and then click **Project**. - -2. In the **New Project** dialog box, in the **Project Types** pane, make sure that **Windows** is selected. Select **Class Library** in the **Templates** pane. In the **Name** box, type `TypeEquivalenceRuntime`, and then click **OK**. The new project is created. - -3. In **Solution Explorer**, right-click the Class1.cs file and click **Rename**. Rename the file to `SampleClass.cs` and press ENTER. Renaming the file also renames the class to `SampleClass`. This class will implement the `ISampleInterface` interface. - -4. Right-click the TypeEquivalenceRuntime project and click **Properties**. Click the **Build** tab. Set the output path to the same location you used in the TypeEquivalenceInterface project, for example, `C:\TypeEquivalenceSample`. - -5. While still editing the project properties, click the **Signing** tab. Select the **Sign the assembly** option. In the **Choose a strong name key file** list, click **\**. In the **Key file name** box, type `key.snk`. Clear the **Protect my key file with a password** check box. Click **OK**. - -6. Right-click the TypeEquivalenceRuntime project and click **Add Reference**. Click the **Browse** tab and browse to the output path folder. Select the TypeEquivalenceInterface.dll file and click **OK**. - -7. In **Solution Explorer**, expand the **References** folder. Select the TypeEquivalenceInterface reference. In the Properties window for the TypeEquivalenceInterface reference, set the **Specific Version** property to **False**. - -8. Add the following code to the SampleClass class file to create the SampleClass class. - - ```csharp - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using TypeEquivalenceInterface; - - namespace TypeEquivalenceRuntime - { - public class SampleClass : ISampleInterface - { - private string p_UserInput; - public string UserInput { get { return p_UserInput; } } - - public void GetUserInput() - { - Console.WriteLine("Please enter a value:"); - p_UserInput = Console.ReadLine(); - } - } - } - ``` - -9. Save the project. - -10. Right-click the TypeEquivalenceRuntime project and click **Build**. The class library .dll file is compiled and saved to the specified build output path (for example, C:\TypeEquivalenceSample). - -## Creating a Client Project - -#### To create the type equivalence client project - -1. In Visual Studio, on the **File** menu, point to **New** and then click **Project**. - -2. In the **New Project** dialog box, in the **Project Types** pane, make sure that **Windows** is selected. Select **Console Application** in the **Templates** pane. In the **Name** box, type `TypeEquivalenceClient`, and then click **OK**. The new project is created. - -3. Right-click the TypeEquivalenceClient project and click **Properties**. Click the **Build** tab. Set the output path to the same location you used in the TypeEquivalenceInterface project, for example, `C:\TypeEquivalenceSample`. - -4. Right-click the TypeEquivalenceClient project and click **Add Reference**. Click the **Browse** tab and browse to the output path folder. Select the TypeEquivalenceInterface.dll file (not the TypeEquivalenceRuntime.dll) and click **OK**. - -5. In **Solution Explorer**, expand the **References** folder. Select the TypeEquivalenceInterface reference. In the Properties window for the TypeEquivalenceInterface reference, set the **Embed Interop Types** property to **True**. - -6. Add the following code to the Program.cs file to create the client program. - - ```csharp - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using TypeEquivalenceInterface; - using System.Reflection; - - namespace TypeEquivalenceClient - { - class Program - { - static void Main(string[] args) - { - Assembly sampleAssembly = Assembly.Load("TypeEquivalenceRuntime"); - ISampleInterface sampleClass = - (ISampleInterface)sampleAssembly.CreateInstance("TypeEquivalenceRuntime.SampleClass"); - sampleClass.GetUserInput(); - Console.WriteLine(sampleClass.UserInput); - Console.WriteLine(sampleAssembly.GetName().Version.ToString()); - Console.ReadLine(); - } - } - } - ``` - -7. Press CTRL+F5 to build and run the program. - -## Modifying the Interface - -#### To modify the interface - -1. In Visual Studio, on the **File** menu, point to **Open**, and then click **Project/Solution**. - -2. In the **Open Project** dialog box, right-click the TypeEquivalenceInterface project, and then click **Properties**. Click the **Application** tab. Click the **Assembly Information** button. Change the **Assembly Version** and **File Version** values to `2.0.0.0`. - -3. Open the SampleInterface.cs file. Add the following line of code to the ISampleInterface interface. - - ```csharp - DateTime GetDate(); - ``` - - Save the file. - -4. Save the project. - -5. Right-click the TypeEquivalenceInterface project and click **Build**. A new version of the class library .dll file is compiled and saved in the specified build output path (for example, C:\TypeEquivalenceSample). - -## Modifying the Runtime Class - -#### To modify the runtime class - -1. In Visual Studio, on the **File** menu, point to **Open**, and then click **Project/Solution**. - -2. In the **Open Project** dialog box, right-click the TypeEquivalenceRuntime project and click **Properties**. Click the **Application** tab. Click the **Assembly Information** button. Change the **Assembly Version** and **File Version** values to `2.0.0.0`. - -3. Open the SampleClass.cs file. Add the following lines of code to the SampleClass class. - - ```csharp - public DateTime GetDate() - { - return DateTime.Now; - } - ``` - - Save the file. - -4. Save the project. - -5. Right-click the TypeEquivalenceRuntime project and click **Build**. An updated version of the class library .dll file is compiled and saved in the previously specified build output path (for example, C:\TypeEquivalenceSample). - -6. In File Explorer, open the output path folder (for example, C:\TypeEquivalenceSample). Double-click the TypeEquivalenceClient.exe to run the program. The program will reflect the new version of the TypeEquivalenceRuntime assembly without having been recompiled. - -## See also - -- [/link (C# Compiler Options)](../../../../csharp/language-reference/compiler-options/link-compiler-option.md) -- [C# Programming Guide](../../../../csharp/programming-guide/index.md) -- [Programming with Assemblies](../../../../framework/app-domains/programming-with-assemblies.md) -- [Assemblies in .NET](../../../../standard/assembly/index.md) diff --git a/docs/csharp/programming-guide/concepts/async/toc.yml b/docs/csharp/programming-guide/concepts/async/toc.yml index 4bba885f069df..d57398dc20d74 100644 --- a/docs/csharp/programming-guide/concepts/async/toc.yml +++ b/docs/csharp/programming-guide/concepts/async/toc.yml @@ -14,8 +14,9 @@ - name: Control Flow in Async Programs href: control-flow-in-async-programs.md - name: Fine-Tuning Your Async Application - href: fine-tuning-your-async-application.md items: + - name: Overview + href: fine-tuning-your-async-application.md - name: Cancel an Async Task or a List of Tasks href: cancel-an-async-task-or-a-list-of-tasks.md - name: Cancel Async Tasks after a Period of Time diff --git a/docs/csharp/programming-guide/concepts/attributes/toc.yml b/docs/csharp/programming-guide/concepts/attributes/toc.yml index 409f838f1f788..7c6132868ebea 100644 --- a/docs/csharp/programming-guide/concepts/attributes/toc.yml +++ b/docs/csharp/programming-guide/concepts/attributes/toc.yml @@ -3,9 +3,8 @@ items: - name: Creating Custom Attributes href: creating-custom-attributes.md - items: - - name: AttributeUsage - href: attributeusage.md + - name: AttributeUsage + href: attributeusage.md - name: Accessing Attributes by Using Reflection href: accessing-attributes-by-using-reflection.md - name: "How to: Create a C-C++ Union by Using Attributes" diff --git a/docs/csharp/programming-guide/concepts/collections.md b/docs/csharp/programming-guide/concepts/collections.md index 97312c9ab34ac..41c0448988254 100644 --- a/docs/csharp/programming-guide/concepts/collections.md +++ b/docs/csharp/programming-guide/concepts/collections.md @@ -345,7 +345,7 @@ private static void FindInDictionary2(string symbol) ## Using LINQ to Access a Collection -LINQ (Language-Integrated Query) can be used to access collections. LINQ queries provide filtering, ordering, and grouping capabilities. For more information, see [Getting Started with LINQ in C#](../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md). +LINQ (Language-Integrated Query) can be used to access collections. LINQ queries provide filtering, ordering, and grouping capabilities. For more information, see [Getting Started with LINQ in C#](../../../csharp/programming-guide/concepts/linq/index.md). The following example runs a LINQ query against a generic `List`. The LINQ query returns a different collection that contains the results. diff --git a/docs/csharp/programming-guide/concepts/covariance-contravariance/toc.yml b/docs/csharp/programming-guide/concepts/covariance-contravariance/toc.yml index 335a1fc0fa9b8..72f5a96538605 100644 --- a/docs/csharp/programming-guide/concepts/covariance-contravariance/toc.yml +++ b/docs/csharp/programming-guide/concepts/covariance-contravariance/toc.yml @@ -1,6 +1,7 @@ - name: Covariance and Contravariance - href: index.md items: + - name: Overview + href: index.md - name: Variance in Generic Interfaces href: variance-in-generic-interfaces.md items: @@ -14,4 +15,4 @@ - name: Using Variance in Delegates href: using-variance-in-delegates.md - name: Using Variance for Func and Action Generic Delegates - href: using-variance-for-func-and-action-generic-delegates.md + href: using-variance-for-func-and-action-generic-delegates.md \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/adding-elements-attributes-and-nodes-to-an-xml-tree.md b/docs/csharp/programming-guide/concepts/linq/adding-elements-attributes-and-nodes-to-an-xml-tree.md index 95a865a6fcb88..75fc3504d8311 100644 --- a/docs/csharp/programming-guide/concepts/linq/adding-elements-attributes-and-nodes-to-an-xml-tree.md +++ b/docs/csharp/programming-guide/concepts/linq/adding-elements-attributes-and-nodes-to-an-xml-tree.md @@ -70,7 +70,4 @@ Console.WriteLine(xmlTree); 5 ``` - -## See also - -- [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md b/docs/csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md deleted file mode 100644 index f2cc2a09715bc..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Advanced LINQ to XML Programming (C#)" -ms.date: 07/20/2015 -ms.assetid: 2e012d40-532b-49ea-b1fc-152e616bdfa3 ---- -# Advanced LINQ to XML Programming (C#) -This section provides information that will only be applicable to advanced developers in certain [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] scenarios. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[LINQ to XML Annotations](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-annotations.md)|Describes how to add annotations to [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] nodes and attributes.| -|[LINQ to XML Events (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-events.md)|Describes how to write event handlers for events that occur when you alter an XML tree.| -|[Programming with Nodes (C#)](../../../../csharp/programming-guide/concepts/linq/programming-with-nodes.md)|Describes how to query and manipulate nodes at a finer level of granularity than elements and attributes.| -|[Mixed Declarative Code/Imperative Code Bugs (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/mixed-declarative-code-imperative-code-bugs-linq-to-xml.md)|Describes the problems that appear when you mix declarative code (queries) with imperative code (code that modifies the XML tree).| -|[How to: Stream XML Fragments with Access to Header Information (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-with-access-to-header-information.md)|Describes how to stream XML fragments from an . You can use this technique to control the memory footprint of your application.| -|[How to: Perform Streaming Transform of Large XML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-perform-streaming-transform-of-large-xml-documents.md)|Describes how to stream XML from an , transform the XML fragment, and stream the output using .| -|[How to: Read and Write an Encoded Document (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-read-and-write-an-encoded-document.md)|Describes how to read and write XML documents that are encoded.| -|[Using XSLT to Transform an XML Tree (C#)](../../../../csharp/programming-guide/concepts/linq/using-xslt-to-transform-an-xml-tree.md)|Describes how to transform an XML tree using XSLT.| -|[How to: Use Annotations to Transform LINQ to XML Trees in an XSLT Style (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-use-annotations-to-transform-linq-to-xml-trees-in-an-xslt-style.md)|Describes how annotations can be used to facilitate transforms of an XML tree.| -|[Serializing Object Graphs that Contain XElement Objects (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-object-graphs-that-contain-xelement-objects.md)|Describes how to serialize object graphs that contain and objects.| -|[WPF Data Binding with LINQ to XML](/visualstudio/designers/wpf-data-binding-with-linq-to-xml)|Describes how to use LINQ to XML as the data source for data binding in Windows Presentation Foundation applications.| - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md deleted file mode 100644 index f186dba9649a9..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Advanced Query Techniques (LINQ to XML) (C#)" -ms.date: 07/20/2015 -ms.assetid: 028d978e-215b-4d50-ba70-adce0659386d ---- -# Advanced Query Techniques (LINQ to XML) (C#) -This section provides examples of more advanced [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] query techniques. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[How to: Join Two Collections (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-join-two-collections-linq-to-xml.md)|Shows how to use the `Join` clause to take advantage of relationships in XML data.| -|[How to: Create Hierarchy Using Grouping (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-create-hierarchy-using-grouping.md)|Shows how to group data, and then generate XML based on the grouping.| -|[How to: Query LINQ to XML Using XPath (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath.md)|Shows how to retrieve collections based on XPath queries.| -|[How to: Write a LINQ to XML Axis Method (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-write-a-linq-to-xml-axis-method.md)|Shows how to write a [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] axis method.| -|[How to: Perform Streaming Transformations of Text to XML (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-perform-streaming-transformations-of-text-to-xml.md)|Shows how to transform very large text files into XML while maintaining a small memory footprint.| -|[How to: List All Nodes in a Tree (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-list-all-nodes-in-a-tree.md)|Presents a utility method that lists all nodes in an XML tree. This is useful for debugging code that modifies an XML tree.| -|[How to: Retrieve Paragraphs from an Office Open XML Document (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-retrieve-paragraphs-from-an-office-open-xml-document.md)|Presents code that opens an Office Open XML Document, retrieves the paragraphs in a collection of XElement objects, the text of the paragraphs, and the style of the paragraphs.| -|[How to: Modify an Office Open XML Document (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-modify-an-office-open-xml-document.md)|Presents code that opens, modifies, and saves an Office Open XML Document.| -|[How to: Populate an XML Tree from the File System (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-from-the-file-system.md)|Presents code that creates an XML tree from the file system.| - -## See also - -- [Querying XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/querying-xml-trees.md) diff --git a/docs/csharp/programming-guide/concepts/linq/atomized-xname-and-xnamespace-objects-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/atomized-xname-and-xnamespace-objects-linq-to-xml.md index c9a616b4bac9b..72a2f6006d45d 100644 --- a/docs/csharp/programming-guide/concepts/linq/atomized-xname-and-xnamespace-objects-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/atomized-xname-and-xnamespace-objects-linq-to-xml.md @@ -67,7 +67,3 @@ foreach (var z in query) 1 1 ``` - -## See also - -- [Performance (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/performance-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/basic-linq-query-operations.md b/docs/csharp/programming-guide/concepts/linq/basic-linq-query-operations.md index 831ad22575cc8..88f2bacdde03b 100644 --- a/docs/csharp/programming-guide/concepts/linq/basic-linq-query-operations.md +++ b/docs/csharp/programming-guide/concepts/linq/basic-linq-query-operations.md @@ -95,7 +95,7 @@ from order in Customer.Orders... ## See also -- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md) +- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/index.md) - [LINQ Query Expressions](../../../../csharp/programming-guide/linq-query-expressions/index.md) - [Walkthrough: Writing Queries in C#](../../../../csharp/programming-guide/concepts/linq/walkthrough-writing-queries-linq.md) - [Query Keywords (LINQ)](../../../../csharp/language-reference/keywords/query-keywords.md) diff --git a/docs/csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md deleted file mode 100644 index dd188c246da9d..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Basic Queries (LINQ to XML) (C#)" -ms.date: 07/20/2015 -ms.assetid: d333bb7d-20c1-448a-95b7-e5ba07915744 ---- -# Basic Queries (LINQ to XML) (C#) -This section provides examples of basic [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] queries. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[How to: Find an Element with a Specific Attribute (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-attribute.md)|Shows how to find a particular element that has an attribute that has a specific value.| -|[How to: Find an Element with a Specific Child Element (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-child-element.md)|Shows how to find a particular element that has a child element that has a specific value.| -|[Querying an XDocument vs. Querying an XElement (C#)](../../../../csharp/programming-guide/concepts/linq/querying-an-xdocument-vs-querying-an-xelement.md)|Explains the differences between writing queries on an XML tree that is rooted in and writing queries on an XML tree that is rooted in .| -|[How to: Find Descendants with a Specific Element Name (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-descendants-with-a-specific-element-name.md)|Shows how to find all the descendants of an element that have a specific name. This example uses the axis.| -|[How to: Find a Single Descendant Using the Descendants Method (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-a-single-descendant-using-the-descendants-method.md)|Shows how to use the axis method to find a single uniquely named element.| -|[How to: Write Queries with Complex Filtering (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-write-queries-with-complex-filtering.md)|Shows how to write a query with a more complex filter.| -|[How to: Filter on an Optional Element (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-filter-on-an-optional-element.md)|Shows how to find nodes in an irregularly shaped tree.| -|[How to: Find All Nodes in a Namespace (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-all-nodes-in-a-namespace.md)|Shows how to find all nodes that are in a specific namespace.| -|[How to: Sort Elements (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-sort-elements.md)|Shows how to write a query that sorts its results.| -|[How to: Sort Elements on Multiple Keys (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-sort-elements-on-multiple-keys.md)|Shows how to sort on multiple keys.| -|[How to: Calculate Intermediate Values (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-calculate-intermediate-values.md)|Shows how to use the `Let` clause to calculate intermediate values in a [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] query.| -|[How to: Write a Query that Finds Elements Based on Context (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-write-a-query-that-finds-elements-based-on-context.md)|Shows how to select elements based on other elements in the tree.| -|[How to: Debug Empty Query Results Sets (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-debug-empty-query-results-sets.md)|Shows the appropriate fix when debugging queries on XML that is in a default namespace.| - -## See also - -- [Querying XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/querying-xml-trees.md) diff --git a/docs/csharp/programming-guide/concepts/linq/chaining-queries-example.md b/docs/csharp/programming-guide/concepts/linq/chaining-queries-example.md index c10c9f11654e0..9eade7d69edc9 100644 --- a/docs/csharp/programming-guide/concepts/linq/chaining-queries-example.md +++ b/docs/csharp/programming-guide/concepts/linq/chaining-queries-example.md @@ -82,4 +82,4 @@ Main: str >GHI!!!< ## See also -- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md) +- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/chaining-standard-query-operators-together.md b/docs/csharp/programming-guide/concepts/linq/chaining-standard-query-operators-together.md index 546900abd9c9c..27ada8b02ddcb 100644 --- a/docs/csharp/programming-guide/concepts/linq/chaining-standard-query-operators-together.md +++ b/docs/csharp/programming-guide/concepts/linq/chaining-standard-query-operators-together.md @@ -4,7 +4,7 @@ ms.date: 07/20/2015 ms.assetid: 66f2b0a9-2c23-4735-988e-bbc9dfb55c7b --- # Chaining Standard Query Operators Together (C#) -This is the final topic in the [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md) tutorial. +This is the final topic in the [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md) tutorial. The standard query operators can also be chained together. For example, you can interject the operator, and it also operates in a lazy fashion. No intermediate results are materialized by it. @@ -79,7 +79,4 @@ ToUpper: source >ghi< AppendString: source >GHI< Main: str >GHI!!!< ``` - -## See also - -- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/comparison-of-xpath-and-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/comparison-of-xpath-and-linq-to-xml.md index 44843409e21eb..9f48b45a57d1a 100644 --- a/docs/csharp/programming-guide/concepts/linq/comparison-of-xpath-and-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/comparison-of-xpath-and-linq-to-xml.md @@ -97,7 +97,4 @@ customers.Elements("Customer").Elements("CompanyName") |preceding-sibling|

or

| |following|No direct equivalent.| |preceding|No direct equivalent.| - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/creating-the-source-office-open-xml-document.md b/docs/csharp/programming-guide/concepts/linq/creating-the-source-office-open-xml-document.md index daf2afeaf3536..3c400ea79aa49 100644 --- a/docs/csharp/programming-guide/concepts/linq/creating-the-source-office-open-xml-document.md +++ b/docs/csharp/programming-guide/concepts/linq/creating-the-source-office-open-xml-document.md @@ -47,6 +47,3 @@ This topic shows how to create the Office Open XML WordprocessingML document tha > [!NOTE] > If you are using Microsoft Word 2003, select **Word 2007 Document** in the **Save as Type** drop-down list. -## See also - -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) diff --git a/docs/csharp/programming-guide/concepts/linq/creating-xml-trees-linq-to-xml-2.md b/docs/csharp/programming-guide/concepts/linq/creating-xml-trees-linq-to-xml-2.md index 64f22ea0b0dae..5afb9456858a2 100644 --- a/docs/csharp/programming-guide/concepts/linq/creating-xml-trees-linq-to-xml-2.md +++ b/docs/csharp/programming-guide/concepts/linq/creating-xml-trees-linq-to-xml-2.md @@ -230,4 +230,4 @@ Console.WriteLine("Child2 was {0}", ## See also -- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md) +- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/creating-xml-trees.md b/docs/csharp/programming-guide/concepts/linq/creating-xml-trees.md deleted file mode 100644 index 3289810c52ac0..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/creating-xml-trees.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Creating XML Trees (C#)" -ms.date: 07/20/2015 -ms.assetid: bccc3e0a-c08c-468e-9d30-e075670fdace ---- -# Creating XML Trees (C#) -One of the most common XML tasks is constructing an XML tree. This section describes several ways to create them. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Functional Construction (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/functional-construction-linq-to-xml.md)|Provides an overview of functional construction in [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)]. Functional construction enables you to create all or part of your XML tree in a single statement. This topic also shows how to embed queries when constructing an XML tree.| -|[Creating XML Trees in C# (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees-linq-to-xml-2.md)|Shows how to create trees in C#.| -|[Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/parsing-xml.md)|Shows how to parse XML from a variety of sources. [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] is layered on top of , which is used to parse the XML.| -|[How to: Populate an XML Tree with an XmlWriter (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-with-an-xmlwriter-linq-to-xml.md)|Shows how to populate an XML tree by using an .| -|[How to: Validate Using XSD (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-validate-using-xsd-linq-to-xml.md)|Shows how to validate an XML tree using XSD.| -|[Valid Content of XElement and XDocument Objects](../../../../csharp/programming-guide/concepts/linq/valid-content-of-xelement-and-xdocument-objects3.md)|Describes the valid arguments that can be passed to the constructors and methods that are used to add content to elements and documents.| - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/data-transformations-with-linq.md b/docs/csharp/programming-guide/concepts/linq/data-transformations-with-linq.md index 33fbdbc8966c6..b184a13e43004 100644 --- a/docs/csharp/programming-guide/concepts/linq/data-transformations-with-linq.md +++ b/docs/csharp/programming-guide/concepts/linq/data-transformations-with-linq.md @@ -96,6 +96,6 @@ ms.assetid: 674eae9e-bc72-4a88-aed3-802b45b25811 - [Language-Integrated Query (LINQ) (C#)](../../../../csharp/programming-guide/concepts/linq/index.md) - [LINQ to SQL](../../../../../docs/framework/data/adonet/sql/linq/index.md) - [LINQ to DataSet](../../../../framework/data/adonet/linq-to-dataset.md) -- [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml.md) +- [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) - [LINQ Query Expressions](../../../../csharp/programming-guide/linq-query-expressions/index.md) - [select clause](../../../../csharp/language-reference/keywords/select-clause.md) diff --git a/docs/csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md index 9c4564c266e6e..0aff19e032a21 100644 --- a/docs/csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md @@ -29,7 +29,7 @@ Query and axis operations are often implemented to use deferred execution. This ## See also -- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md) +- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md) - [Concepts and Terminology (Functional Transformation) (C#)](../../../../csharp/programming-guide/concepts/linq/concepts-and-terminology-functional-transformation.md) - [Aggregation Operations (C#)](../../../../csharp/programming-guide/concepts/linq/aggregation-operations.md) - [yield](../../../../csharp/language-reference/keywords/yield.md) diff --git a/docs/csharp/programming-guide/concepts/linq/deferred-execution-example.md b/docs/csharp/programming-guide/concepts/linq/deferred-execution-example.md index 8187b548db23f..b1163b7be7469 100644 --- a/docs/csharp/programming-guide/concepts/linq/deferred-execution-example.md +++ b/docs/csharp/programming-guide/concepts/linq/deferred-execution-example.md @@ -59,4 +59,4 @@ Main: str GHI ## See also -- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md) +- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md b/docs/csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md deleted file mode 100644 index c39782b721739..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Details of Office Open XML WordprocessingML Documents (C#)" -ms.date: 07/20/2015 -ms.assetid: 40c9ed57-b827-4c9e-a3e7-8b2163122106 ---- -# Details of Office Open XML WordprocessingML Documents (C#) -This section provides information about the details of Office Open XML WordprocessingML documents. It shows examples of the document and style parts of an Open XML document. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[WordprocessingML Document with Styles](../../../../csharp/programming-guide/concepts/linq/wordprocessingml-document-with-styles.md)|Shows the document part of an Office Open XML WordprocessingML document.| -|[Style Part of a WordprocessingML Document](../../../../csharp/programming-guide/concepts/linq/style-part-of-a-wordprocessingml-document.md)|Shows the style part of an Office Open XML WordprocessingML document.| -|[Example that Outputs Office Open XML Document Parts (C#)](../../../../csharp/programming-guide/concepts/linq/example-that-outputs-office-open-xml-document-parts.md)|Provides an example that opens an Office Open XML WordprocessingML document, and outputs the parts to the console.| - -## See also - -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) diff --git a/docs/csharp/programming-guide/concepts/linq/example-that-outputs-office-open-xml-document-parts.md b/docs/csharp/programming-guide/concepts/linq/example-that-outputs-office-open-xml-document-parts.md index 67505d63f1304..84c7e6a05a428 100644 --- a/docs/csharp/programming-guide/concepts/linq/example-that-outputs-office-open-xml-document-parts.md +++ b/docs/csharp/programming-guide/concepts/linq/example-that-outputs-office-open-xml-document-parts.md @@ -59,7 +59,3 @@ using (Package wdPackage = Package.Open(fileName, FileMode.Open, FileAccess.Read } } ``` - -## See also - -- [Details of Office Open XML WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md) diff --git a/docs/csharp/programming-guide/concepts/linq/finding-text-in-word-documents.md b/docs/csharp/programming-guide/concepts/linq/finding-text-in-word-documents.md index 36742f9ba95bc..0176f4d922e70 100644 --- a/docs/csharp/programming-guide/concepts/linq/finding-text-in-word-documents.md +++ b/docs/csharp/programming-guide/concepts/linq/finding-text-in-word-documents.md @@ -319,10 +319,10 @@ StyleName:Code >< ## Next Steps The next section provides more information about WordprocessingML documents: -- [Details of Office Open XML WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md) +- [Details of Office Open XML WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/wordprocessingml-document-with-styles.md) ## See also -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) +- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) - [Refactoring Using a Pure Function (C#)](../../../../csharp/programming-guide/concepts/linq/refactoring-using-a-pure-function.md) - [Deferred Execution and Lazy Evaluation in LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/finding-the-default-paragraph-style.md b/docs/csharp/programming-guide/concepts/linq/finding-the-default-paragraph-style.md index 87d99d3e98df7..58af19c10db35 100644 --- a/docs/csharp/programming-guide/concepts/linq/finding-the-default-paragraph-style.md +++ b/docs/csharp/programming-guide/concepts/linq/finding-the-default-paragraph-style.md @@ -9,7 +9,7 @@ The first task in the Manipulating Information in a WordprocessingML Document tu ## Example ### Description - The following example opens an Office Open XML WordprocessingML document, finds the document and style parts of the package, and then executes a query that finds the default style name. For information about Office Open XML document packages, and the parts they consist of, see [Details of Office Open XML WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md). + The following example opens an Office Open XML WordprocessingML document, finds the document and style parts of the package, and then executes a query that finds the default style name. For information about Office Open XML document packages, and the parts they consist of, see [Details of Office Open XML WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/wordprocessingml-document-with-styles.md). The query finds a node named `w:style` that has an attribute named `w:type` with a value of "paragraph", and also has an attribute named `w:default` with a value of "1". Because there will be only one XML node with these attributes, the query uses the operator to convert a collection to a singleton. It then gets the value of the attribute with the name `w:styleId`. @@ -81,7 +81,4 @@ The default style is: Normal In the next example, you'll create a similar query that finds all the paragraphs in a document and their styles: - [Retrieving the Paragraphs and Their Styles (C#)](../../../../csharp/programming-guide/concepts/linq/retrieving-the-paragraphs-and-their-styles.md) - -## See also - -- [Tutorial: Manipulating Content in a WordprocessingML Document](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/functional-construction-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/functional-construction-linq-to-xml.md index 47feb0678e009..69903eddba942 100644 --- a/docs/csharp/programming-guide/concepts/linq/functional-construction-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/functional-construction-linq-to-xml.md @@ -63,7 +63,4 @@ Console.WriteLine(xmlTree); 5 ``` - -## See also - -- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/functional-transformation-of-xml.md b/docs/csharp/programming-guide/concepts/linq/functional-transformation-of-xml.md index 39c7c29cad24d..899052c3713fd 100644 --- a/docs/csharp/programming-guide/concepts/linq/functional-transformation-of-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/functional-transformation-of-xml.md @@ -20,7 +20,7 @@ This topic discusses the pure functional transformation approach to modifying XM ### XML Functional Transformational Technologies Microsoft offers two functional transformation technologies for use on XML documents: XSLT and LINQ to XML. XSLT is supported in the managed namespace and in the native COM implementation of MSXML. Although XSLT is a robust technology for manipulating XML documents, it requires expertise in a specialized domain, namely the XSLT language and its supporting APIs. - LINQ to XML provides the tools necessary to code pure functional transformations in an expressive and powerful way, within C# or Visual Basic code. For example, many of the examples in the LINQ to XML documentation use a pure functional approach. Also, in the [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) tutorial, we use LINQ to XML in a functional approach to manipulate information in a Microsoft Word document. + LINQ to XML provides the tools necessary to code pure functional transformations in an expressive and powerful way, within C# or Visual Basic code. For example, many of the examples in the LINQ to XML documentation use a pure functional approach. Also, in the [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) tutorial, we use LINQ to XML in a functional approach to manipulate information in a Microsoft Word document. For a more complete comparison of LINQ to XML with other Microsoft XML technologies, see [LINQ to XML vs. Other XML Technologies](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-vs-other-xml-technologies.md). @@ -29,5 +29,5 @@ This topic discusses the pure functional transformation approach to modifying XM ## See also - [Introduction to Pure Functional Transformations (C#)](../../../../csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md) -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) +- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) - [LINQ to XML vs. Other XML Technologies](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-vs-other-xml-technologies.md) diff --git a/docs/csharp/programming-guide/concepts/linq/functional-vs-procedural-programming-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/functional-vs-procedural-programming-linq-to-xml.md index 2ba0fff6a5b0a..6b0861fec7396 100644 --- a/docs/csharp/programming-guide/concepts/linq/functional-vs-procedural-programming-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/functional-vs-procedural-programming-linq-to-xml.md @@ -32,8 +32,8 @@ There are various types of XML applications: To see the two approaches contrasted, see [In-Memory XML Tree Modification vs. Functional Construction (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md). - For a tutorial on writing functional transformations, see [Pure Functional Transformations of XML (C#)](../../../../csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md). + For a tutorial on writing functional transformations, see [Pure Functional Transformations of XML (C#)](../../../../csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md). ## See also -- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md) +- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md deleted file mode 100644 index e7b950c42e379..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Getting Started (LINQ to XML)" -ms.date: 07/20/2015 -ms.assetid: a6c65e53-4e5f-443d-aef2-9c46ad0a3bf0 ---- -# Getting Started (LINQ to XML) -The following topics introduce LINQ to XML. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[LINQ to XML Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md)|Provides an overview of the LINQ to XML technology.| -|[LINQ to XML vs. DOM (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-vs-dom.md)|Compares LINQ to XML to the Document Object Model (DOM).| -|[LINQ to XML vs. Other XML Technologies](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-vs-other-xml-technologies.md)|Compares LINQ to XML to other XML parsing and manipulation technologies: XmlReader, XSLT, MSXML, and XmlLite.| - -## See also - -- [Reference (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/reference-linq-to-xml.md) -- [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/getting-started-with-linq.md b/docs/csharp/programming-guide/concepts/linq/getting-started-with-linq.md deleted file mode 100644 index 18082c6a17647..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/getting-started-with-linq.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Getting Started with LINQ in C#" -ms.date: 07/20/2015 -helpviewer_keywords: - - "LINQ [C#]" - - "queries [LINQ in C#]" - - "LINQ, C#" - - "queries [LINQ], LINQ in C#" -ms.assetid: b8700c1f-05c9-4380-b6eb-e34c4da38e54 ---- -# Getting Started with LINQ in C\# -This section contains basic background information that will help you understand the rest of the LINQ documentation and samples. - -## In This Section - [Introduction to LINQ Queries (C#)](../../../../csharp/programming-guide/concepts/linq/introduction-to-linq-queries.md) - Describes the three parts of the basic LINQ query operation that are common across all languages and data sources. - - [LINQ and Generic Types (C#)](../../../../csharp/programming-guide/concepts/linq/linq-and-generic-types.md) - Provides a brief introduction to generic types as they are used in LINQ. - - [Basic LINQ Query Operations](../../../../csharp/programming-guide/concepts/linq/basic-linq-query-operations.md) - Describes the most common types of query operations and how they are expressed in C#. - - [Data Transformations with LINQ (C#)](../../../../csharp/programming-guide/concepts/linq/data-transformations-with-linq.md) - Describes the various ways that you can transform data retrieved in queries. - - [Type Relationships in LINQ Query Operations](../../../../csharp/programming-guide/concepts/linq/type-relationships-in-linq-query-operations.md) - Describes how types are preserved and/or transformed in the three parts of a LINQ query operation - - [Query Syntax and Method Syntax in LINQ](../../../../csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq.md) - Compares method syntax and query syntax as two ways to express a LINQ query. - - [C# Features That Support LINQ](../../../../csharp/programming-guide/concepts/linq/features-that-support-linq.md) - Describes the language constructs added in C# 3.0 that support LINQ. - - [Walkthrough: Writing Queries in C#](../../../../csharp/programming-guide/concepts/linq/walkthrough-writing-queries-linq.md) - Step-by-step instructions for creating a C# LINQ project, adding a simple data source, and performing some basic query operations. - -## Related Sections - [Language-Integrated Query (LINQ) (C#)](../../../../csharp/programming-guide/concepts/linq/index.md) - Provides links to topics that explain the LINQ technologies. - - [LINQ Query Expressions](../../../../csharp/programming-guide/linq-query-expressions/index.md) - Includes an overview of queries in LINQ and provides links to additional resources. - - [Visual Studio IDE and Tools Support for LINQ (C#)](../../../../csharp/programming-guide/concepts/linq/visual-studio-ide-and-tools-support-for-linq.md) - Describes tools available in the Visual Studio environment for designing, coding, and debugging LINQ-enabled application. - - [Standard Query Operators Overview (C#)](../../../../csharp/programming-guide/concepts/linq/standard-query-operators-overview.md) - Introduces the standard methods used in LINQ. - - [Getting Started with LINQ in Visual Basic](../../../../visual-basic/programming-guide/concepts/linq/getting-started-with-linq.md) - Provides links to topics about using LINQ with Visual Basic. diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-build-linq-to-xml-examples.md b/docs/csharp/programming-guide/concepts/linq/how-to-build-linq-to-xml-examples.md index 08f4ceaa6b2ef..ec459b8bd4162 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-build-linq-to-xml-examples.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-build-linq-to-xml-examples.md @@ -30,4 +30,4 @@ using System.IO.Packaging; ## See also -- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md) +- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-calculate-intermediate-values.md b/docs/csharp/programming-guide/concepts/linq/how-to-calculate-intermediate-values.md index 7626ef0ea6022..5ec6504767809 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-calculate-intermediate-values.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-calculate-intermediate-values.md @@ -34,7 +34,7 @@ foreach (decimal ex in extensions) ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Numerical Data in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-in-a-namespace.md). @@ -60,7 +60,3 @@ foreach (decimal ex in extensions) 198.00 435.00 ``` - -## See also - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-catch-parsing-errors.md b/docs/csharp/programming-guide/concepts/linq/how-to-catch-parsing-errors.md index 60908b7406dda..1c16760a15927 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-catch-parsing-errors.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-catch-parsing-errors.md @@ -35,7 +35,4 @@ The 'Contacts' start tag on line 1 does not match the end tag of 'Contcts'. Line ``` For information about the exceptions that you can expect the , , , and methods to throw, see the documentation. - -## See also - -- [Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/parsing-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-chain-axis-method-calls-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-chain-axis-method-calls-linq-to-xml.md index 951b4436438cb..32c915eeea157 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-chain-axis-method-calls-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-chain-axis-method-calls-linq-to-xml.md @@ -82,7 +82,7 @@ foreach (XElement cp in configParameters) ``` ## Example - The following example shows the same technique for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same technique for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Multiple Purchase Orders in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-in-a-namespace.md). diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-change-the-namespace-for-an-entire-xml-tree.md b/docs/csharp/programming-guide/concepts/linq/how-to-change-the-namespace-for-an-entire-xml-tree.md index bca0d5a35f9ed..450c77ee50f2c 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-change-the-namespace-for-an-entire-xml-tree.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-change-the-namespace-for-an-entire-xml-tree.md @@ -6,7 +6,7 @@ ms.assetid: 1584ff3b-c77d-4241-ab62-80adfb7bfc1b # How to: Change the Namespace for an Entire XML Tree (C#) You sometimes have to programmatically change the namespace for an element or an attribute. LINQ to XML makes this easy. The property can be set. The property cannot be set, but you can easily copy the attributes into a , remove the existing attributes, and then add new attributes that are in the new desired namespace. - For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). ## Example The following code creates two XML trees in no namespace. It then changes the namespace of each of the trees, and combines them into a single tree. @@ -70,7 +70,3 @@ Console.WriteLine(root); ``` - -## See also - -- [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-control-namespace-prefixes-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-control-namespace-prefixes-linq-to-xml.md index 75dc143afaf94..1c2ecbe724dca 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-control-namespace-prefixes-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-control-namespace-prefixes-linq-to-xml.md @@ -50,4 +50,4 @@ Console.WriteLine(root); ## See also -- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md) +- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-control-the-type-of-a-projection.md b/docs/csharp/programming-guide/concepts/linq/how-to-control-the-type-of-a-projection.md index 6366eb732369f..efa82ba97a558 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-control-the-type-of-a-projection.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-control-the-type-of-a-projection.md @@ -66,4 +66,3 @@ LETSS:Let's Stop N Shop:Jaime Yorres ## See also - -- [Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-create-a-document-with-namespaces-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-create-a-document-with-namespaces-linq-to-xml.md index 6d8fc95d72337..c459157e598fd 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-create-a-document-with-namespaces-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-create-a-document-with-namespaces-linq-to-xml.md @@ -138,4 +138,4 @@ Console.WriteLine(root); ## See also -- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md) +- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-create-a-tree-from-an-xmlreader.md b/docs/csharp/programming-guide/concepts/linq/how-to-create-a-tree-from-an-xmlreader.md index 043864bd51cda..a10e217710720 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-create-a-tree-from-an-xmlreader.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-create-a-tree-from-an-xmlreader.md @@ -44,7 +44,3 @@ Console.WriteLine(e); ``` - -## See also - -- [Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/parsing-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-create-hierarchy-using-grouping.md b/docs/csharp/programming-guide/concepts/linq/how-to-create-hierarchy-using-grouping.md index 975bd187bd07e..84c46a0dbcd9e 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-create-hierarchy-using-grouping.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-create-hierarchy-using-grouping.md @@ -67,7 +67,3 @@ Console.WriteLine(newData); ``` - -## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-debug-empty-query-results-sets.md b/docs/csharp/programming-guide/concepts/linq/how-to-debug-empty-query-results-sets.md index 65174bc90e755..6ef2e8401e2cb 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-debug-empty-query-results-sets.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-debug-empty-query-results-sets.md @@ -10,7 +10,7 @@ One of the most common problems when querying XML trees is that if the XML tree The second set of examples show the necessary corrections so that you can query XML in a namespace. - For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). ## Example This example shows creation of XML in a namespace, and a query that returns an empty result set. @@ -75,7 +75,3 @@ Result set follows: 3 End of result set ``` - -## See also - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-an-attribute-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-an-attribute-xpath-linq-to-xml.md index b7bb00a5b3ec7..05783127d3325 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-an-attribute-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-an-attribute-xpath-linq-to-xml.md @@ -65,7 +65,3 @@ Results are identical USA ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-an-optional-element.md b/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-an-optional-element.md index 6a9b509d66ffa..fdd48482828d6 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-an-optional-element.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-an-optional-element.md @@ -48,7 +48,7 @@ Child Four Text ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). ```csharp XElement root = XElement.Parse(@" @@ -94,6 +94,5 @@ Child Four Text - - - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) - [Standard Query Operators Overview (C#)](../../../../csharp/programming-guide/concepts/linq/standard-query-operators-overview.md) - [Projection Operations (C#)](../../../../csharp/programming-guide/concepts/linq/projection-operations.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-element-names-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-element-names-linq-to-xml.md index 8b392821ed5ab..d74885b324203 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-element-names-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-filter-on-element-names-linq-to-xml.md @@ -44,7 +44,7 @@ ProductName:Baby Monitor - ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Typical Purchase Order in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-in-a-namespace.md). @@ -67,4 +67,4 @@ foreach (XElement prdName in items) ## See also -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) +- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-a-child-element-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-a-child-element-xpath-linq-to-xml.md index 5b3eab4f18723..7674ab866885f 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-a-child-element-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-a-child-element-xpath-linq-to-xml.md @@ -38,7 +38,4 @@ Console.WriteLine(el1); Results are identical Please leave packages in shed by driveway. ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-a-list-of-child-elements-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-a-list-of-child-elements-xpath-linq-to-xml.md index 217a4246db534..145c505aa8479 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-a-list-of-child-elements-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-a-list-of-child-elements-xpath-linq-to-xml.md @@ -43,7 +43,4 @@ Results are identical 10999 USA ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-a-single-descendant-using-the-descendants-method.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-a-single-descendant-using-the-descendants-method.md index 069b94871f31f..7eb6dd806ee75 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-a-single-descendant-using-the-descendants-method.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-a-single-descendant-using-the-descendants-method.md @@ -37,7 +37,7 @@ GC3 Value ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). ```csharp XElement root = XElement.Parse(@" @@ -66,7 +66,3 @@ Console.WriteLine(grandChild3); ``` GC3 Value ``` - -## See also - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-a-union-of-two-location-paths-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-a-union-of-two-location-paths-xpath-linq-to-xml.md index 1f4880ebf8f2e..2598d11a04866 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-a-union-of-two-location-paths-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-a-union-of-two-location-paths-xpath-linq-to-xml.md @@ -61,7 +61,4 @@ Results are identical B 6.99 ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-all-nodes-in-a-namespace.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-all-nodes-in-a-namespace.md index 6cd5ac000be60..f886f54db01ab 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-all-nodes-in-a-namespace.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-all-nodes-in-a-namespace.md @@ -88,7 +88,3 @@ Console.WriteLine(newTree); ``` - -## See also - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-an-attribute-of-the-parent-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-an-attribute-of-the-parent-xpath-linq-to-xml.md index 52b272dc37912..fc662f390652d 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-an-attribute-of-the-parent-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-an-attribute-of-the-parent-xpath-linq-to-xml.md @@ -47,6 +47,3 @@ Results are identical id="bk101" ``` -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-attribute.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-attribute.md index f7ee67c87efe3..89dbdb3306a38 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-attribute.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-attribute.md @@ -35,7 +35,7 @@ foreach (XElement el in address) ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Typical Purchase Order in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-in-a-namespace.md). @@ -67,6 +67,5 @@ foreach (XElement el in address) - - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) - [Standard Query Operators Overview (C#)](../../../../csharp/programming-guide/concepts/linq/standard-query-operators-overview.md) - [Projection Operations (C#)](../../../../csharp/programming-guide/concepts/linq/projection-operations.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-child-element.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-child-element.md index b5a5491592587..634be887ae0fd 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-child-element.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-child-element.md @@ -29,7 +29,7 @@ foreach (XElement el in tests) ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Test Configuration in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-in-a-namespace1.md). @@ -55,6 +55,5 @@ foreach (XElement el in tests) - - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) - [Standard Query Operators Overview (C#)](../../../../csharp/programming-guide/concepts/linq/standard-query-operators-overview.md) - [Projection Operations (C#)](../../../../csharp/programming-guide/concepts/linq/projection-operations.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-attributes-of-siblings-with-a-specific-name-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-attributes-of-siblings-with-a-specific-name-xpath-linq-to-xml.md index 4b9baaa129a25..b88dcee09ab7b 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-attributes-of-siblings-with-a-specific-name-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-attributes-of-siblings-with-a-specific-name-xpath-linq-to-xml.md @@ -48,7 +48,4 @@ Results are identical id="bk101" id="bk102" ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-child-elements-based-on-position-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-child-elements-based-on-position-xpath-linq-to-xml.md index d8c6422e311ff..f538402c55f1f 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-child-elements-based-on-position-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-child-elements-based-on-position-xpath-linq-to-xml.md @@ -71,7 +71,3 @@ Results are identical b1 ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-descendant-elements-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-descendant-elements-xpath-linq-to-xml.md index 113035477a966..4c67f654a17c1 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-descendant-elements-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-descendant-elements-xpath-linq-to-xml.md @@ -42,7 +42,3 @@ Results are identical Jessica Arnold Jessica Arnold ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-descendants-of-a-child-element-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-descendants-of-a-child-element-xpath-linq-to-xml.md index 44c0dc97f594f..88dc1c8544608 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-descendants-of-a-child-element-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-descendants-of-a-child-element-xpath-linq-to-xml.md @@ -68,7 +68,4 @@ Console.WriteLine(str2); Results are identical This is the start of a sentence. This is a second sentence. ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-descendants-with-a-specific-element-name.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-descendants-with-a-specific-element-name.md index 6c22b5b5c969c..48229d95d7689 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-descendants-with-a-specific-element-name.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-descendants-with-a-specific-element-name.md @@ -46,7 +46,7 @@ Some text that is broken up into multiple segments. ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). ```csharp XElement root = XElement.Parse(@" @@ -88,4 +88,3 @@ Some text that is broken up into multiple segments. ## See also - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-elements-in-a-namespace-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-elements-in-a-namespace-xpath-linq-to-xml.md index ebc67a953833c..48302269171e0 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-elements-in-a-namespace-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-elements-in-a-namespace-xpath-linq-to-xml.md @@ -68,6 +68,3 @@ Results are identical ``` -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-elements-with-a-specific-attribute-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-elements-with-a-specific-attribute-xpath-linq-to-xml.md index 7b9af8eb53fc5..fcf4ae52e3ee0 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-elements-with-a-specific-attribute-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-elements-with-a-specific-attribute-xpath-linq-to-xml.md @@ -49,7 +49,4 @@ Results are identical 2 4 ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-preceding-siblings-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-preceding-siblings-xpath-linq-to-xml.md index 9d69d4e03e5cc..b01bcfd0428b5 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-preceding-siblings-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-preceding-siblings-xpath-linq-to-xml.md @@ -46,7 +46,3 @@ Results are identical Marketing Manager (503) 555-7555 ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-related-elements-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-related-elements-xpath-linq-to-xml.md index 0d041ada672e0..4971be728fa67 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-related-elements-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-related-elements-xpath-linq-to-xml.md @@ -77,7 +77,4 @@ Results are identical ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-sibling-nodes-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-sibling-nodes-xpath-linq-to-xml.md index e249388e0c6e1..18d4d9b4b62a0 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-sibling-nodes-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-sibling-nodes-xpath-linq-to-xml.md @@ -67,7 +67,3 @@ Results are identical of the world. ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-the-immediate-preceding-sibling-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-the-immediate-preceding-sibling-xpath-linq-to-xml.md index 16048f3019b96..3edd31d2d3048 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-the-immediate-preceding-sibling-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-the-immediate-preceding-sibling-xpath-linq-to-xml.md @@ -45,7 +45,3 @@ Console.WriteLine(el1); Results are identical ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-find-the-root-element-xpath-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-find-the-root-element-xpath-linq-to-xml.md index 52c76e231c0ea..c7e271ece97f4 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-find-the-root-element-xpath-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-find-the-root-element-xpath-linq-to-xml.md @@ -37,7 +37,3 @@ Console.WriteLine(el1.Name); Results are identical PurchaseOrders ``` - -## See also - -- [LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-generate-text-files-from-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-generate-text-files-from-xml.md index 7c2f26765342a..50be6c406716e 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-generate-text-files-from-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-generate-text-files-from-xml.md @@ -46,7 +46,4 @@ HUNGC,Hungry Coyote Import Store,Yoshi Latimer,Sales Representative,(503) 555-68 LAZYK,Lazy K Kountry Store,John Steel,Marketing Manager,(509) 555-7969,12 Orchestra Terrace,Walla Walla,WA,99362,USA LETSS,Let's Stop N Shop,Jaime Yorres,Owner,(415) 555-5938,87 Polk St. Suite 5,San Francisco,CA,94117,USA ``` - -## See also - -- [Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-generate-xml-from-csv-files.md b/docs/csharp/programming-guide/concepts/linq/how-to-generate-xml-from-csv-files.md index a10b837e511e0..82cc711a20e1f 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-generate-xml-from-csv-files.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-generate-xml-from-csv-files.md @@ -100,7 +100,4 @@ Console.WriteLine(cust); ``` - -## See also - -- [Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-join-two-collections-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-join-two-collections-linq-to-xml.md index 6ca1ecff00457..64222b54b6266 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-join-two-collections-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-join-two-collections-linq-to-xml.md @@ -117,7 +117,3 @@ Attempting to validate, custOrdDoc validated ``` - -## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-list-all-nodes-in-a-tree.md b/docs/csharp/programming-guide/concepts/linq/how-to-list-all-nodes-in-a-tree.md index 3d48110882589..87992d337aa45 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-list-all-nodes-in-a-tree.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-list-all-nodes-in-a-tree.md @@ -341,7 +341,4 @@ class Program /Root/aw:ElementInNamespace /Root/aw:ElementInNamespace/aw:ChildInNamespace ``` - -## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-load-xml-from-a-file.md b/docs/csharp/programming-guide/concepts/linq/how-to-load-xml-from-a-file.md index 312c28b4febdc..53f2fe2f2bbf5 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-load-xml-from-a-file.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-load-xml-from-a-file.md @@ -41,7 +41,4 @@ Console.WriteLine(booksFromFile); ``` - -## See also - -- [Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/parsing-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-modify-an-office-open-xml-document.md b/docs/csharp/programming-guide/concepts/linq/how-to-modify-an-office-open-xml-document.md index a53f023445bad..555f87835cf41 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-modify-an-office-open-xml-document.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-modify-an-office-open-xml-document.md @@ -140,7 +140,4 @@ class Program ``` New first paragraph: >PARSING WORDPROCESSINGML WITH LINQ TO XML< ``` - -## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-parse-a-string.md b/docs/csharp/programming-guide/concepts/linq/how-to-parse-a-string.md index 0f99f5d9c1dd0..bf2fa5a70e930 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-parse-a-string.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-parse-a-string.md @@ -38,7 +38,3 @@ XElement contacts = XElement.Parse( "); Console.WriteLine(contacts); ``` - -## See also - -- [Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/parsing-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-perform-streaming-transform-of-large-xml-documents.md b/docs/csharp/programming-guide/concepts/linq/how-to-perform-streaming-transform-of-large-xml-documents.md index 039bd7c7ced09..c4fac3e500f32 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-perform-streaming-transform-of-large-xml-documents.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-perform-streaming-transform-of-large-xml-documents.md @@ -315,7 +315,4 @@ static void Main(string[] args) ``` - -## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-perform-streaming-transformations-of-text-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-perform-streaming-transformations-of-text-to-xml.md index dd35950dd9b71..e37ea2b2fc8f2 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-perform-streaming-transformations-of-text-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-perform-streaming-transformations-of-text-to-xml.md @@ -83,4 +83,3 @@ class Program ## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-from-the-file-system.md b/docs/csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-from-the-file-system.md index 1e5f251b44df3..882067203c7d5 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-from-the-file-system.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-from-the-file-system.md @@ -109,7 +109,3 @@ class Program ------ Total File Size:59089 ``` - -## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-with-an-xmlwriter-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-with-an-xmlwriter-linq-to-xml.md index 90e5671900796..8129f1468895d 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-with-an-xmlwriter-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-populate-an-xml-tree-with-an-xmlwriter-linq-to-xml.md @@ -61,4 +61,4 @@ Console.WriteLine(newTree); - - - -- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md) +- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-project-a-new-type-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-project-a-new-type-linq-to-xml.md index ed54f5436d2ed..4b85646de5968 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-project-a-new-type-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-project-a-new-type-linq-to-xml.md @@ -47,7 +47,4 @@ class Program { Lawnmower:1 Baby Monitor:2 ``` - -## See also - -- [Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-project-an-anonymous-type.md b/docs/csharp/programming-guide/concepts/linq/how-to-project-an-anonymous-type.md index 8a092028ff99e..6fd1596ee8fc2 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-project-an-anonymous-type.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-project-an-anonymous-type.md @@ -45,7 +45,4 @@ HUNGC:Hungry Coyote Import Store:Yoshi Latimer LAZYK:Lazy K Kountry Store:John Steel LETSS:Let's Stop N Shop:Jaime Yorres ``` - -## See also - -- [Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-project-an-object-graph.md b/docs/csharp/programming-guide/concepts/linq/how-to-project-an-object-graph.md index 8dbee836c81c1..01ec24043bcfa 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-project-an-object-graph.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-project-an-object-graph.md @@ -253,4 +253,3 @@ ShipDate: 5/21/1999 - - -- [Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath.md b/docs/csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath.md index ab21864869161..cf365f323f9e4 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath.md @@ -32,7 +32,4 @@ foreach (XElement el in list) 5 6 ``` - -## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-read-and-write-an-encoded-document.md b/docs/csharp/programming-guide/concepts/linq/how-to-read-and-write-an-encoded-document.md index c0832b8900783..06126f4baf38b 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-read-and-write-an-encoded-document.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-read-and-write-an-encoded-document.md @@ -73,4 +73,3 @@ Encoding of loaded document is:utf-16 ## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-attributes-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-attributes-linq-to-xml.md index 19d593801a97c..b2196f0cdf0c3 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-attributes-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-attributes-linq-to-xml.md @@ -32,4 +32,4 @@ ConvertableTo="double" ## See also -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) +- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-elements-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-elements-linq-to-xml.md index b819e8226c10b..e3c3e6d92d083 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-elements-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-elements-linq-to-xml.md @@ -31,4 +31,4 @@ Name: Items ## See also -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) +- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-attribute-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-attribute-linq-to-xml.md index a4f7421a73e23..75c737adbd498 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-attribute-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-attribute-linq-to-xml.md @@ -65,7 +65,7 @@ work [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] provides explicit cast operators for the class to `string`, `bool`, `bool?`, `int`, `int?`, `uint`, `uint?`, `long`, `long?`, `ulong`, `ulong?`, `float`, `float?`, `double`, `double?`, `decimal`, `decimal?`, `DateTime`, `DateTime?`, `TimeSpan`, `TimeSpan?`, `GUID`, and `GUID?`. ## Example - The following example shows the same code for an attribute that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same code for an attribute that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). ```csharp XNamespace aw = "http://www.adventure-works.com"; @@ -93,4 +93,4 @@ work ## See also -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) +- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-child-element-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-child-element-linq-to-xml.md index 3c9b75482f44d..9714bcb43ca89 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-child-element-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-child-element-linq-to-xml.md @@ -30,7 +30,7 @@ Console.WriteLine(e); ``` ## Example - The following example shows the same code for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same code for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Typical Purchase Order in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-in-a-namespace.md). @@ -49,4 +49,4 @@ Console.WriteLine(e); ## See also -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) +- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-paragraphs-from-an-office-open-xml-document.md b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-paragraphs-from-an-office-open-xml-document.md index ba45e0064197a..d57fe373a8f32 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-paragraphs-from-an-office-open-xml-document.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-paragraphs-from-an-office-open-xml-document.md @@ -13,7 +13,7 @@ This topic presents an example that opens an Office Open XML document, and retri The example uses an extension method named `StringConcatenate`, which is also supplied in the example. - For a detailed tutorial that explains how this example works, see [Pure Functional Transformations of XML (C#)](../../../../csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md). + For a detailed tutorial that explains how this example works, see [Pure Functional Transformations of XML (C#)](../../../../csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md). This example uses classes found in the WindowsBase assembly. It uses types in the namespace. @@ -176,7 +176,3 @@ StyleName:Normal >This example produces the following output:< StyleName:Normal >< StyleName:Code >Hello World< ``` - -## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-shallow-value-of-an-element.md b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-shallow-value-of-an-element.md index b17b575033989..cb1f0e68d6375 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-shallow-value-of-an-element.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-shallow-value-of-an-element.md @@ -75,4 +75,4 @@ Column Name="Name" =Customer.Name ## See also -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) +- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-attribute-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-attribute-linq-to-xml.md index e0f2637b980c0..de495abb4848c 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-attribute-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-attribute-linq-to-xml.md @@ -26,7 +26,7 @@ abcde ``` ## Example - The following example shows how to retrieve the value of an attribute where the attribute is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows how to retrieve the value of an attribute where the attribute is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). ```csharp XNamespace aw = "http://www.adventure-works.com"; @@ -45,4 +45,4 @@ abcde ## See also -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) +- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-element-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-element-linq-to-xml.md index e7423ba0025c7..d685ca82b4c40 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-element-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-element-linq-to-xml.md @@ -141,4 +141,4 @@ v4:element does not exist ## See also -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) +- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-serialize-using-datacontractserializer.md b/docs/csharp/programming-guide/concepts/linq/how-to-serialize-using-datacontractserializer.md index 82301cd1389f3..3a1a4b2f8d0c8 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-serialize-using-datacontractserializer.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-serialize-using-datacontractserializer.md @@ -84,7 +84,4 @@ Testing for type: XElementContainer Testing for type: XElementNullContainer Deserialized type: XElementNullContainer ``` - -## See also - -- [Serializing Object Graphs that Contain XElement Objects (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-object-graphs-that-contain-xelement-objects.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer.md b/docs/csharp/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer.md index 2cbeec8c5ed87..008c8372750d3 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer.md @@ -82,7 +82,3 @@ Testing for type: System.Xml.Linq.XElement Testing for type: XElementContainer Deserialized type: XElementContainer ``` - -## See also - -- [Serializing Object Graphs that Contain XElement Objects (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-object-graphs-that-contain-xelement-objects.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-sort-elements-on-multiple-keys.md b/docs/csharp/programming-guide/concepts/linq/how-to-sort-elements-on-multiple-keys.md index 2fbdb6d8f37b6..1d1c30fdd5c1f 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-sort-elements-on-multiple-keys.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-sort-elements-on-multiple-keys.md @@ -56,7 +56,7 @@ CustomerID:LAZYK EmployeeID:8 ShipPostalCode:99362 OrderDate:5/22/1997 ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Customers and Orders in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-in-a-namespace.md). @@ -106,6 +106,3 @@ CustomerID:LAZYK EmployeeID:1 ShipPostalCode:99362 OrderDate:3/21/1997 CustomerID:LAZYK EmployeeID:8 ShipPostalCode:99362 OrderDate:5/22/1997 ``` -## See also - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-sort-elements.md b/docs/csharp/programming-guide/concepts/linq/how-to-sort-elements.md index 28b327a739198..091930f1055d0 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-sort-elements.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-sort-elements.md @@ -33,7 +33,7 @@ foreach (decimal el in prices) ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Numerical Data in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-in-a-namespace.md). @@ -64,4 +64,3 @@ foreach (decimal el in prices) ## See also - [Sorting Data (C#)](../../../../csharp/programming-guide/concepts/linq/sorting-data.md) -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-from-an-xmlreader.md b/docs/csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-from-an-xmlreader.md index f104c3e752b02..ded026cceafe2 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-from-an-xmlreader.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-from-an-xmlreader.md @@ -75,7 +75,4 @@ ccc ``` In this example, the source document is very small. However, even if there were millions of `Child` elements, this example would still have a small memory footprint. - -## See also - -- [Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/parsing-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-with-access-to-header-information.md b/docs/csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-with-access-to-header-information.md index a6de44a0895ee..adf95377142f8 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-with-access-to-header-information.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-with-access-to-header-information.md @@ -159,7 +159,4 @@ static void Main(string[] args) ``` - -## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-transform-the-shape-of-an-xml-tree.md b/docs/csharp/programming-guide/concepts/linq/how-to-transform-the-shape-of-an-xml-tree.md index 7d15b7b72f7eb..0a719df509c43 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-transform-the-shape-of-an-xml-tree.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-transform-the-shape-of-an-xml-tree.md @@ -131,7 +131,3 @@ static void Main(string[] args) USA ``` - -## See also - -- [Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-use-annotations-to-transform-linq-to-xml-trees-in-an-xslt-style.md b/docs/csharp/programming-guide/concepts/linq/how-to-use-annotations-to-transform-linq-to-xml-trees-in-an-xslt-style.md index 66995c7b15573..74a71738ac57d 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-use-annotations-to-transform-linq-to-xml-trees-in-an-xslt-style.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-use-annotations-to-transform-linq-to-xml-trees-in-an-xslt-style.md @@ -418,7 +418,4 @@ After Transform 42 ``` - -## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-validate-using-xsd-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-validate-using-xsd-linq-to-xml.md index d661558fa91d0..191a00a9510aa 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-validate-using-xsd-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-validate-using-xsd-linq-to-xml.md @@ -117,4 +117,4 @@ custOrdDoc did not validate ## See also - -- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md) +- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-work-with-dictionaries-using-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/how-to-work-with-dictionaries-using-linq-to-xml.md index 38accaacb7f2f..36d9b6a68036b 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-work-with-dictionaries-using-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-work-with-dictionaries-using-linq-to-xml.md @@ -59,7 +59,4 @@ Child2:Value2 Child3:Value3 Child4:Value4 ``` - -## See also - -- [Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-write-a-linq-to-xml-axis-method.md b/docs/csharp/programming-guide/concepts/linq/how-to-write-a-linq-to-xml-axis-method.md index 1d98e204001a8..c94cebf87e4f7 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-write-a-linq-to-xml-axis-method.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-write-a-linq-to-xml-axis-method.md @@ -284,7 +284,4 @@ class Program /PurchaseOrders/PurchaseOrder[3]/@OrderDate 1999-10-22 ``` - -## See also - -- [Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-write-a-query-that-finds-elements-based-on-context.md b/docs/csharp/programming-guide/concepts/linq/how-to-write-a-query-that-finds-elements-based-on-context.md index 9bf3ff3149dc0..5f765b8b95677 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-write-a-query-that-finds-elements-based-on-context.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-write-a-query-that-finds-elements-based-on-context.md @@ -50,7 +50,7 @@ id = 6 ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). ```csharp XElement doc = XElement.Parse(@" @@ -98,4 +98,3 @@ id = 6 - - - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-write-queries-on-xml-in-namespaces.md b/docs/csharp/programming-guide/concepts/linq/how-to-write-queries-on-xml-in-namespaces.md index 68951cb477817..7fa1880129db1 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-write-queries-on-xml-in-namespaces.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-write-queries-on-xml-in-namespaces.md @@ -72,4 +72,4 @@ foreach (XElement el in c1) ## See also -- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md) +- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/how-to-write-queries-with-complex-filtering.md b/docs/csharp/programming-guide/concepts/linq/how-to-write-queries-with-complex-filtering.md index ce51d6881cb3d..68d3290f9136e 100644 --- a/docs/csharp/programming-guide/concepts/linq/how-to-write-queries-with-complex-filtering.md +++ b/docs/csharp/programming-guide/concepts/linq/how-to-write-queries-with-complex-filtering.md @@ -36,7 +36,7 @@ foreach (XElement el in purchaseOrders) ``` ## Example - The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + The following example shows the same query for XML that is in a namespace. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). This example uses the following XML document: [Sample XML File: Multiple Purchase Orders in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-in-a-namespace.md). @@ -67,6 +67,5 @@ foreach (XElement el in purchaseOrders) - - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) - [Projection Operations (C#)](../../../../csharp/programming-guide/concepts/linq/projection-operations.md) - [Quantifier Operations (C#)](../../../../csharp/programming-guide/concepts/linq/quantifier-operations.md) diff --git a/docs/csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md index b34dd92b71f47..4986b1bf4c91e 100644 --- a/docs/csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md @@ -66,7 +66,4 @@ Console.WriteLine(newTree); Notice that in this case the functional approach probably would not perform quite as well as the tree manipulation approach. The main issue is that the functional approach creates more short lived objects. However, the tradeoff is an effective one if using the functional approach allows for greater programmer productivity. This is a very simple example, but it serves to show the difference in philosophy between the two approaches. The functional approach yields greater productivity gains for transforming larger XML documents. - -## See also - -- [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/index.md b/docs/csharp/programming-guide/concepts/linq/index.md index 0ad51277a23a8..24fb0e751b11e 100644 --- a/docs/csharp/programming-guide/concepts/linq/index.md +++ b/docs/csharp/programming-guide/concepts/linq/index.md @@ -6,14 +6,20 @@ ms.assetid: 19dd1782-905b-4a9d-a3e9-618453037fa2 # Language Integrated Query (LINQ) -Language-Integrated Query (LINQ) is the name for a set of technologies based on the integration of query capabilities directly into the C# language. Traditionally, queries against data are expressed as simple strings without type checking at compile time or IntelliSense support. Furthermore, you have to learn a different query language for each type of data source: SQL databases, XML documents, various Web services, and so on. With LINQ, a query is a first-class language construct, just like classes, methods, events. +Language-Integrated Query (LINQ) is the name for a set of technologies based on the integration of query capabilities directly into the C# language. Traditionally, queries against data are expressed as simple strings without type checking at compile time or IntelliSense support. Furthermore, you have to learn a different query language for each type of data source: SQL databases, XML documents, various Web services, and so on. With LINQ, a query is a first-class language construct, just like classes, methods, events. LINQ makes a *query* a first-class language construct in C#. You write queries against strongly typed collections of objects by using language keywords and familiar operators. For a developer who writes queries, the most visible "language-integrated" part of LINQ is the query expression. Query expressions are written in a declarative *query syntax*. By using query syntax, you can perform filtering, ordering, and grouping operations on data sources with a minimum of code. You use the same basic query expression patterns to query and transform data in SQL databases, ADO .NET Datasets, XML documents and streams, and .NET collections. +You can write LINQ queries in C# for SQL Server databases, XML documents, ADO.NET Datasets, and any collection of objects that supports or the generic interface. LINQ support is also provided by third parties for many Web services and other database implementations. + The following example shows the complete query operation. The complete operation includes creating a data source, defining the query expression, and executing the query in a `foreach` statement. [!code-csharp[csProgGuideLINQ#11](../../../../../samples/snippets/csharp/concepts/linq/index_1.cs)] + The following illustration from Visual Studio shows a partially-completed LINQ query against a SQL Server database in both C# and Visual Basic with full type checking and IntelliSense support: + + ![Diagram that shows a LINQ query with Intellisense.](./media/introduction-to-linq/linq-query-intellisense.png) + ## Query expression overview - Query expressions can be used to query and to transform data from any LINQ-enabled data source. For example, a single query can retrieve data from a SQL database, and produce an XML stream as output. @@ -44,3 +50,7 @@ To learn more details about LINQ, start by becoming familiar with some basic con To gain a deeper understanding of LINQ in general, see [LINQ in C#](../../../linq/linq-in-csharp.md). To start working with LINQ in C#, see the tutorial [Working with LINQ](../../../tutorials/working-with-linq.md). + +## See also + +- [Language-Integrated Query (LINQ) (C#)](../../../../csharp/programming-guide/concepts/linq/index.md) diff --git a/docs/csharp/programming-guide/concepts/linq/intermediate-materialization.md b/docs/csharp/programming-guide/concepts/linq/intermediate-materialization.md index 48377fa074733..711d1e41f504c 100644 --- a/docs/csharp/programming-guide/concepts/linq/intermediate-materialization.md +++ b/docs/csharp/programming-guide/concepts/linq/intermediate-materialization.md @@ -82,4 +82,4 @@ Main: str >GHI!!!< ## See also -- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md) +- [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/introduction-to-linq-queries.md b/docs/csharp/programming-guide/concepts/linq/introduction-to-linq-queries.md index cd3ff1b66d5c7..f8929feaf643f 100644 --- a/docs/csharp/programming-guide/concepts/linq/introduction-to-linq-queries.md +++ b/docs/csharp/programming-guide/concepts/linq/introduction-to-linq-queries.md @@ -84,7 +84,7 @@ IQueryable custQuery = ## See also -- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md) +- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/index.md) - [Walkthrough: Writing Queries in C#](../../../../csharp/programming-guide/concepts/linq/walkthrough-writing-queries-linq.md) - [LINQ Query Expressions](../../../../csharp/programming-guide/linq-query-expressions/index.md) - [foreach, in](../../../../csharp/language-reference/keywords/foreach-in.md) diff --git a/docs/csharp/programming-guide/concepts/linq/introduction-to-linq.md b/docs/csharp/programming-guide/concepts/linq/introduction-to-linq.md deleted file mode 100644 index 267749b448eb0..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/introduction-to-linq.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Introduction to LINQ (C#)" -ms.date: 07/20/2015 -ms.assetid: 54874feb-55e5-4ca8-a9d6-1c1127fd7fb1 ---- -# Introduction to LINQ (C#) -Language-Integrated Query (LINQ) is an innovation introduced in the .NET Framework version 3.5 that bridges the gap between the world of objects and the world of data. - - Traditionally, queries against data are expressed as simple strings without type checking at compile time or IntelliSense support. Furthermore, you have to learn a different query language for each type of data source: SQL databases, XML documents, various Web services, and so on. LINQ makes a *query* a first-class language construct in C#. You write queries against strongly typed collections of objects by using language keywords and familiar operators. - - You can write LINQ queries in C# for SQL Server databases, XML documents, ADO.NET Datasets, and any collection of objects that supports or the generic interface. LINQ support is also provided by third parties for many Web services and other database implementations. - - You can use LINQ queries in new projects, or alongside non-LINQ queries in existing projects. The only requirement is that the project target .NET Framework 3.5 or later. - - The following illustration from Visual Studio shows a partially-completed LINQ query against a SQL Server database in both C# and Visual Basic with full type checking and IntelliSense support: - - ![Diagram that shows a LINQ query with Intellisense.](./media/introduction-to-linq/linq-query-intellisense.png) - -## Next Steps - To learn more details about LINQ, start by becoming familiar with some basic concepts in the Getting Started section [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md), and then read the documentation for the LINQ technology in which you are interested: - -- SQL Server databases: [LINQ to SQL](../../../../../docs/framework/data/adonet/sql/linq/index.md) - -- XML documents: [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml.md) - -- ADO.NET Datasets: [LINQ to DataSet](../../../../framework/data/adonet/linq-to-dataset.md) - -- .NET collections, files, strings and so on: [LINQ to Objects (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-objects.md) - -## See also - -- [Language-Integrated Query (LINQ) (C#)](../../../../csharp/programming-guide/concepts/linq/index.md) diff --git a/docs/csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md b/docs/csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md index 53170e890b096..46782144a2a27 100644 --- a/docs/csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md +++ b/docs/csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md @@ -6,6 +6,12 @@ ms.assetid: 8495c9d9-2d02-4aa0-8a10-9e8794b985fe # Introduction to Pure Functional Transformations (C#) This section introduces functional transformations, including the underlying concepts and supporting language constructs. It contrasts the object-oriented and functional transformation approaches to programming, including advice on how to transition to the latter. Although functional transformations can be used in many programming scenarios, XML transformation is used here as a concrete example. + The [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) tutorial provides a series of examples, each building on the previous one. These examples demonstrate the pure functional transformational approach to manipulating XML. + + This tutorial assumes a working knowledge of C#. Detailed semantics of the language constructs are not provided in this tutorial, but links are provided to the language documentation as appropriate. + + A working knowledge of basic computer science concepts and XML, including XML namespaces, is also assumed. + ## In This Section |Topic|Description| @@ -15,7 +21,4 @@ This section introduces functional transformations, including the underlying con |[Refactoring Into Pure Functions (C#)](../../../../csharp/programming-guide/concepts/linq/refactoring-into-pure-functions.md)|Introduces pure functions, and shows examples of and pure and impure functions.| |[Applicability of Functional Transformation (C#)](../../../../csharp/programming-guide/concepts/linq/applicability-of-functional-transformation.md)|Describes typical scenarios for functional transformations.| |[Functional Transformation of XML (Visual Basic)](../../../../visual-basic/programming-guide/concepts/linq/functional-transformation-of-xml.md)|Describes functional transformations in the context of transforming XML trees.| - -## See also - -- [Pure Functional Transformations of XML (C#)](../../../../csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/linq-and-generic-types.md b/docs/csharp/programming-guide/concepts/linq/linq-and-generic-types.md index 4f99f92c40d48..eb7da1471c584 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-and-generic-types.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-and-generic-types.md @@ -32,5 +32,5 @@ ms.assetid: 660e3799-25ca-462c-8c4a-8bce04fbb031 ## See also -- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md) +- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/index.md) - [Generics](../../../../csharp/programming-guide/generics/index.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-objects.md b/docs/csharp/programming-guide/concepts/linq/linq-to-objects.md index b1bd91069dd44..b3bb52ba34a5c 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-objects.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-objects.md @@ -4,7 +4,7 @@ ms.date: 07/20/2015 ms.assetid: c5c2c178-3529-4f6c-b3df-2d5267af7f22 --- # LINQ to Objects (C#) -The term "LINQ to Objects" refers to the use of LINQ queries with any or collection directly, without the use of an intermediate LINQ provider or API such as [LINQ to SQL](../../../../../docs/framework/data/adonet/sql/linq/index.md) or [LINQ to XML](../../../../csharp/programming-guide/concepts/linq/linq-to-xml.md). You can use LINQ to query any enumerable collections such as , , or . The collection may be user-defined or may be returned by a .NET Framework API. +The term "LINQ to Objects" refers to the use of LINQ queries with any or collection directly, without the use of an intermediate LINQ provider or API such as [LINQ to SQL](../../../../../docs/framework/data/adonet/sql/linq/index.md) or [LINQ to XML](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md). You can use LINQ to query any enumerable collections such as , , or . The collection may be user-defined or may be returned by a .NET Framework API. In a basic sense, LINQ to Objects represents a new approach to collections. In the old way, you had to write complex `foreach` loops that specified how to retrieve data from a collection. In the LINQ approach, you write declarative code that describes what you want to retrieve. diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-annotations.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-annotations.md index eb630a55be3b3..904a23d51c813 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-annotations.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-annotations.md @@ -20,6 +20,3 @@ Annotations in [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] enable you ||Gets a collection of annotations of the specified type for an .| ||Removes the annotations of the specified type from an .| -## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md index 6eaae7d8feff9..0e3be9cf1c2f7 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md @@ -47,7 +47,4 @@ After you have created an XML tree or loaded an XML document into an XML tree, y |Method|Description| |------------|-----------------| ||Returns the that has the specified .| - -## See also - -- [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-axes.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-axes.md deleted file mode 100644 index 0cb23821610e1..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-axes.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "LINQ to XML Axes (C#)" -ms.date: 07/20/2015 -ms.assetid: 3f7d54ff-b608-43a1-9e2d-e70668b72df8 ---- -# LINQ to XML Axes (C#) -After you have created an XML tree or loaded an XML document into an XML tree, you can query it to find elements and attributes and retrieve their values. - - Before you can write any queries, you must understand the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] axes. There are two kinds of axis methods: First, there are the methods that you call on a single object, object, or object. These methods operate on a single object and return a collection of , , or objects. Second, there are extension methods that operate on collections and return collections. The extension methods enumerate the source collection, call the appropriate axis method on each item in the collection, and concatenate the results. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[LINQ to XML Axes Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md)|Defines axes, and explains how they are used in the context of [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] queries.| -|[How to: Retrieve a Collection of Elements (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-elements-linq-to-xml.md)|Introduces the method. This method retrieves a collection of the child elements of an element.| -|[How to: Retrieve the Value of an Element (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-element-linq-to-xml.md)|Shows how to get the values of elements.| -|[How to: Filter on Element Names (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-filter-on-element-names-linq-to-xml.md)|Shows how to filter on element names when using axes.| -|[How to: Chain Axis Method Calls (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-chain-axis-method-calls-linq-to-xml.md)|Shows how to chain calls to axes methods.| -|[How to: Retrieve a Single Child Element (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-child-element-linq-to-xml.md)|Shows how to retrieve a single child element of an element, given the tag name of the child element.| -|[How to: Retrieve a Collection of Attributes (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-retrieve-a-collection-of-attributes-linq-to-xml.md)|Introduces the method. This method retrieves the attributes of an element.| -|[How to: Retrieve a Single Attribute (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-retrieve-a-single-attribute-linq-to-xml.md)|Shows how to retrieve a single attribute of an element, given the attribute name.| -|[How to: Retrieve the Value of an Attribute (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-retrieve-the-value-of-an-attribute-linq-to-xml.md)|Shows how to get the values of attributes.| -|[How to: Retrieve the Shallow Value of an Element (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-retrieve-the-shallow-value-of-an-element.md)|Shows how to retrieve the shallow value of an element.| - -## See also - -- [Extension Methods](../../../../csharp/programming-guide/classes-and-structs/extension-methods.md) -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-classes-overview.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-classes-overview.md index 43f58899d9c9a..f7ab46a65b0ec 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-classes-overview.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-classes-overview.md @@ -82,4 +82,4 @@ This topic provides a list of the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq- ## See also -- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md) +- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-events.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-events.md index 7ff4be75f30d6..61ebff194ac5c 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-events.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-events.md @@ -90,7 +90,4 @@ Total:308 ``` - -## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md deleted file mode 100644 index f6160f46835a8..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "LINQ to XML for XPath Users (C#)" -ms.date: 07/20/2015 -ms.assetid: 91774511-1dca-4f06-ac0b-913746f104fe ---- -# LINQ to XML for XPath Users (C#) -This set of topics show a number of XPath expressions and their [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] equivalents. - - All of the examples use the XPath functionality in [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] that is made available by the extension methods in . The examples execute both the XPath expression and the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] expression. Each example then compares the results of both queries, validating that the XPath expression is functionally equivalent to the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] query. As both types of queries return nodes from the same XML tree, the query result comparison is made using referential identity. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Comparison of XPath and LINQ to XML](../../../../csharp/programming-guide/concepts/linq/comparison-of-xpath-and-linq-to-xml.md)|Provides an overview of the similarities and differences between XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].| -|[How to: Find a Child Element (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-a-child-element-xpath-linq-to-xml.md)|Compares the XPath child element axis to the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] method.

The associated XPath expression is:`"DeliveryNotes"`.| -|[How to: Find a List of Child Elements (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-a-list-of-child-elements-xpath-linq-to-xml.md)|Compares the XPath child elements axis to the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] axis.

The associated XPath expression is:`"./*"`| -|[How to: Find the Root Element (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-the-root-element-xpath-linq-to-xml.md)|Compares how to get the root element with XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"/PurchaseOrders"`| -|[How to: Find Descendant Elements (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-descendant-elements-xpath-linq-to-xml.md)|Compares how to get the descendant elements with a particular name with XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"//Name"`| -|[How to: Filter on an Attribute (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-filter-on-an-attribute-xpath-linq-to-xml.md)|Compares how to get the descendant elements with a specified name, and with an attribute with a specified value with XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`".//Address[@Type='Shipping']"`| -|[How to: Find Related Elements (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-related-elements-xpath-linq-to-xml.md)|Compares how to get an element selecting on an attribute that is referred to by the value of another element with XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`".//Customer[@CustomerID=/Root/Orders/Order[12]/CustomerID]"`| -|[How to: Find Elements in a Namespace (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-elements-in-a-namespace-xpath-linq-to-xml.md)|Compares the use of the XPath class with the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] property of the class for working with XML namespaces.

The associated XPath expression is:`"./aw:*"`| -|[How to: Find Preceding Siblings (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-preceding-siblings-xpath-linq-to-xml.md)|Compares the XPath `preceding-sibling` axis to the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] child axis.

The associated XPath expression is:`"preceding-sibling::*"`| -|[How to: Find Descendants of a Child Element (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-descendants-of-a-child-element-xpath-linq-to-xml.md)|Compares how to get the descendant elements of a child element with a particular name with XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"./Paragraph//Text/text()"`| -|[How to: Find a Union of Two Location Paths (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-a-union-of-two-location-paths-xpath-linq-to-xml.md)|Compares the use of the union operator, |, in XPath with the standard query operator in [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:"//Category|//Price"| -|[How to: Find Sibling Nodes (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-sibling-nodes-xpath-linq-to-xml.md)|Compares how to find all siblings of a node that have a specific name with XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"../Book"`| -|[How to: Find an Attribute of the Parent (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-an-attribute-of-the-parent-xpath-linq-to-xml.md)|Compares how to navigate to the parent element and find an associated attribute using XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"../@id"`| -|[How to: Find Attributes of Siblings with a Specific Name (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-attributes-of-siblings-with-a-specific-name-xpath-linq-to-xml.md)|Compares how to find specific attributes of the siblings of the context node with XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"../Book/@id"`| -|[How to: Find Elements with a Specific Attribute (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-elements-with-a-specific-attribute-xpath-linq-to-xml.md)|Compares how to find al elements containing a specific attribute using XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"./*[@Select]"`| -|[How to: Find Child Elements Based on Position (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-child-elements-based-on-position-xpath-linq-to-xml.md)|Compares how to find an element based on its relative position using XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"Test[position() >= 2 and position() <= 4]"`| -|[How to: Find the Immediate Preceding Sibling (XPath-LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-the-immediate-preceding-sibling-xpath-linq-to-xml.md)|Compares how to find the immediate preceding sibling of a node using XPath and [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)].

The associated XPath expression is:`"preceding-sibling::*[1]"`| - -## See also - -- -- [Querying XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/querying-xml-trees.md) -- [Process XML Data Using the XPath Data Model](../../../../standard/data/xml/process-xml-data-using-the-xpath-data-model.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-overview.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-overview.md index 0807467307fa8..a8dbbe11d20c0 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-overview.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-overview.md @@ -5,6 +5,10 @@ ms.assetid: 716b94d3-0091-4de1-8e05-41bc069fa9dd --- # LINQ to XML Overview (C#) +LINQ to XML provides an in-memory XML programming interface that leverages the .NET Language-Integrated Query (LINQ) Framework. LINQ to XML uses the latest .NET Framework language capabilities and is comparable to an updated, redesigned Document Object Model (DOM) XML programming interface. + + The LINQ family of technologies provides a consistent query experience for objects (LINQ to Objects), relational databases (LINQ to SQL), and XML (LINQ to XML). + XML has been widely adopted as a way to format data in many contexts. For example, you can find XML on the Web, in configuration files, in Microsoft Office Word files, and in databases. [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] is an up-to-date, redesigned approach to programming with XML. It provides the in-memory document modification capabilities of the Document Object Model (DOM), and supports [!INCLUDE[vbteclinq](~/includes/vbteclinq-md.md)] query expressions. Although these query expressions are syntactically different from XPath, they provide similar functionality. @@ -108,9 +112,11 @@ new XElement("Contacts", ); ``` -For more information, see [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md). +For more information, see [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md). ## See also +- [Reference (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/reference-linq-to-xml.md) +- [LINQ to XML vs. DOM (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-vs-dom.md) +- [LINQ to XML vs. Other XML Technologies](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-vs-other-xml-technologies.md) - -- [Getting Started (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md deleted file mode 100644 index 783d61c9f3143..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "LINQ to XML Programming Overview (C#)" -ms.date: 07/20/2015 -ms.assetid: 2dfa9b6f-5890-461d-b81c-316853c7f320 ---- -# LINQ to XML Programming Overview (C#) -These topics provide high-level overview information about the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] classes, as well as detailed information about three of the most important classes. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Functional vs. Procedural Programming (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/functional-vs-procedural-programming-linq-to-xml.md)|Provides a high level view of the two principle approaches to writing LINQ to XML applications.| -|[LINQ to XML Classes Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-classes-overview.md)|Provides an overview of the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] classes.| -|[XElement Class Overview (C#)](../../../../csharp/programming-guide/concepts/linq/xelement-class-overview.md)|Introduces the class, which represents XML elements. is one of the fundamental classes in the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] class hierarchy.| -|[XAttribute Class Overview (C#)](../../../../csharp/programming-guide/concepts/linq/xattribute-class-overview.md)|Introduces the class, which represents XML attributes.| -|[XDocument Class Overview (C#)](../../../../csharp/programming-guide/concepts/linq/xdocument-class-overview.md)|Introduces the class, which represents XML documents.| -|[How to: Build LINQ to XML Examples (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-build-linq-to-xml-examples.md)|Contains the `Using` directives that are required to build the LINQ to XML examples.| - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-security.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-security.md index 93b3e51919c2e..7d709bf355f50 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-security.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-security.md @@ -95,4 +95,4 @@ This topic describes security issues associated with LINQ to XML. In addition, i ## See also -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) +- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-vs-dom.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-vs-dom.md index 7bab24dcedb63..eeb15741a00ab 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-vs-dom.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-vs-dom.md @@ -69,7 +69,7 @@ XElement contacts = Notice that indenting the code to construct the XML tree shows the structure of the underlying XML. - For more information, see [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md). + For more information, see [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md). ## Working Directly with XML Elements When you program with XML, your primary focus is usually on XML elements and perhaps on attributes. In [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)], you can work directly with XML elements and attributes. For example, you can do the following: @@ -94,7 +94,7 @@ doc.AppendChild(name); When using LINQ to XML, you use the class only if you want to add a comment or processing instruction at the root level of the document. ## Simplified Handling of Names and Namespaces - Handling names, namespaces, and namespace prefixes is generally a complex part of XML programming. [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] simplifies names and namespaces by eliminating the requirement to deal with namespace prefixes. If you want to control namespace prefixes, you can. But if you decide to not explicitly control namespace prefixes, [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] will assign namespace prefixes during serialization if they are required, or will serialize using default namespaces if they are not. If default namespaces are used, there will be no namespace prefixes in the resulting document. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md). + Handling names, namespaces, and namespace prefixes is generally a complex part of XML programming. [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] simplifies names and namespaces by eliminating the requirement to deal with namespace prefixes. If you want to control namespace prefixes, you can. But if you decide to not explicitly control namespace prefixes, [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] will assign namespace prefixes during serialization if they are required, or will serialize using default namespaces if they are not. If default namespaces are used, there will be no namespace prefixes in the resulting document. For more information, see [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md). Another problem with the DOM is that it does not let you change the name of a node. Instead, you have to create a new node and copy all the child nodes to it, losing the original node identity. [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] avoids this problem by enabling you to set the property on a node. @@ -127,4 +127,4 @@ doc.AppendChild(name); ## See also -- [Getting Started (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md) +- [Getting Started (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-vs-other-xml-technologies.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-vs-other-xml-technologies.md index 63b36fa021446..98ec1e60866aa 100644 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml-vs-other-xml-technologies.md +++ b/docs/csharp/programming-guide/concepts/linq/linq-to-xml-vs-other-xml-technologies.md @@ -48,4 +48,4 @@ This topic compares [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] to the ## See also -- [Getting Started (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md) +- [Getting Started (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/linq-to-xml.md deleted file mode 100644 index 0489ec8026c31..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/linq-to-xml.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "LINQ to XML (C#)" -ms.date: 07/20/2015 -ms.assetid: 26c907b1-bc58-465f-bcdc-adbe89df6e55 ---- -# LINQ to XML (C#) -LINQ to XML provides an in-memory XML programming interface that leverages the .NET Language-Integrated Query (LINQ) Framework. LINQ to XML uses the latest .NET Framework language capabilities and is comparable to an updated, redesigned Document Object Model (DOM) XML programming interface. - - The LINQ family of technologies provides a consistent query experience for objects (LINQ to Objects), relational databases (LINQ to SQL), and XML (LINQ to XML). - -## In this Section - [Getting Started (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md) - Provides introductory information about LINQ to XML, including a conceptual overview and an overview of the classes. - - [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) - Provides conceptual and how-to information about programming with LINQ to XML. - - [Reference (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/reference-linq-to-xml.md) - Provides pointers to the LINQ to XML managed reference documentation. - -## See also - -- [Language-Integrated Query (LINQ) (C#)](../../../../csharp/programming-guide/concepts/linq/index.md) diff --git a/docs/csharp/programming-guide/concepts/linq/maintaining-name-value-pairs.md b/docs/csharp/programming-guide/concepts/linq/maintaining-name-value-pairs.md index a26db593013dd..6c9af999fe6a8 100644 --- a/docs/csharp/programming-guide/concepts/linq/maintaining-name-value-pairs.md +++ b/docs/csharp/programming-guide/concepts/linq/maintaining-name-value-pairs.md @@ -116,4 +116,4 @@ Console.WriteLine(root); - - -- [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md) +- [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/mixed-declarative-code-imperative-code-bugs-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/mixed-declarative-code-imperative-code-bugs-linq-to-xml.md index e8686237373f2..b55615af9d627 100644 --- a/docs/csharp/programming-guide/concepts/linq/mixed-declarative-code-imperative-code-bugs-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/mixed-declarative-code-imperative-code-bugs-linq-to-xml.md @@ -4,7 +4,7 @@ ms.date: 07/20/2015 ms.assetid: fada62d0-0680-4e73-945a-2b00d7a507af --- # Mixed Declarative Code/Imperative Code Bugs (LINQ to XML) (C#) -[!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] contains various methods that allow you to modify an XML tree directly. You can add elements, delete elements, change the contents of an element, add attributes, and so on. This programming interface is described in [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md). If you are iterating through one of the axes, such as , and you are modifying the XML tree as you iterate through the axis, you can end up with some strange bugs. +[!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] contains various methods that allow you to modify an XML tree directly. You can add elements, delete elements, change the contents of an element, add attributes, and so on. This programming interface is described in [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md). If you are iterating through one of the axes, such as , and you are modifying the XML tree as you iterate through the axis, you can end up with some strange bugs. This problem is sometimes known as "The Halloween Problem". @@ -161,7 +161,4 @@ XElement newRoot = new XElement("Root", ); Console.WriteLine(newRoot); ``` - -## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/modifying-elements-attributes-and-nodes-in-an-xml-tree.md b/docs/csharp/programming-guide/concepts/linq/modifying-elements-attributes-and-nodes-in-an-xml-tree.md index 420afcaff68c1..cf231a2bc77e1 100644 --- a/docs/csharp/programming-guide/concepts/linq/modifying-elements-attributes-and-nodes-in-an-xml-tree.md +++ b/docs/csharp/programming-guide/concepts/linq/modifying-elements-attributes-and-nodes-in-an-xml-tree.md @@ -38,7 +38,3 @@ The following table summarizes the methods and properties that you can use to mo |Method|Description| |------------|-----------------| ||Replaces the children nodes with new content.| - -## See also - -- [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md deleted file mode 100644 index c49c153757825..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Modifying XML Trees (LINQ to XML) (C#)" -ms.date: 07/20/2015 -ms.assetid: 8ec47e6d-2363-4694-be46-8d5ca4d15fc9 ---- -# Modifying XML Trees (LINQ to XML) (C#) -[!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] is an in-memory store for an XML tree. After you load or parse an XML tree from a source, [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] lets you modify that tree in place, and then serialize the tree, perhaps saving it to a file or sending it to a remote server. - - When you modify a tree in place, you use certain methods, such as . - - However, there is another approach, which is to use functional construction to generate a new tree with a different shape. Depending on the types of changes that you need to make to your XML tree, and depending on the size of the tree, this approach can be more robust and easier to develop. The first topic in this section compares these two approaches. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[In-Memory XML Tree Modification vs. Functional Construction (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md)|Compares modifying an XML tree in memory to functional construction.| -|[Adding Elements, Attributes, and Nodes to an XML Tree (C#)](../../../../csharp/programming-guide/concepts/linq/adding-elements-attributes-and-nodes-to-an-xml-tree.md)|Provides information about adding elements, attributes, or nodes to an XML tree.| -|[Modifying Elements, Attributes, and Nodes in an XML Tree](../../../../csharp/programming-guide/concepts/linq/modifying-elements-attributes-and-nodes-in-an-xml-tree.md)|Provides information about modifying existing elements, attributes, or nodes.| -|[Removing Elements, Attributes, and Nodes from an XML Tree (C#)](../../../../csharp/programming-guide/concepts/linq/removing-elements-attributes-and-nodes-from-an-xml-tree.md)|Provides information about removing elements, attributes, or nodes from the XML tree.| -|[Maintaining Name/Value Pairs (C#)](../../../../csharp/programming-guide/concepts/linq/maintaining-name-value-pairs.md)|Describes how to maintain application information that is best kept as name/value pairs, such as configuration information or global settings.| -|[How to: Change the Namespace for an Entire XML Tree (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-change-the-namespace-for-an-entire-xml-tree.md)|Shows how to move an XML tree from one namespace into another.| - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md index 636f7a196fdf6..d65319405f884 100644 --- a/docs/csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md @@ -19,4 +19,4 @@ This topic introduces namespaces, the class, and th ## See also -- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md) +- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/parsing-xml.md b/docs/csharp/programming-guide/concepts/linq/parsing-xml.md deleted file mode 100644 index 6914f35e38ca4..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/parsing-xml.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Parsing XML (C#)" -ms.date: 07/20/2015 -ms.assetid: 7ea83f83-a779-423a-9875-4ea4e51f97fc ---- -# Parsing XML (C#) -The topics in this section describe how to parse XML documents. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[How to: Parse a String (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-parse-a-string.md)|Shows how to parse a string to create an XML tree.| -|[How to: Load XML from a File (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-load-xml-from-a-file.md)|Shows how to load XML from a URI using the method.| -|[Preserving White Space while Loading or Parsing XML](../../../../csharp/programming-guide/concepts/linq/preserving-white-space-while-loading-or-parsing-xml1.md)|Describes how to control the white space behavior of [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] while loading XML trees.| -|[How to: Catch Parsing Errors (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-catch-parsing-errors.md)|Shows how to detect badly formed or invalid XML.| -|[How to: Create a Tree from an XmlReader (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-create-a-tree-from-an-xmlreader.md)|Shows how to create an XML tree directly from an .| -|[How to: Stream XML Fragments from an XmlReader (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-stream-xml-fragments-from-an-xmlreader.md)|Shows how to stream XML fragments by using an .

When you have to process arbitrarily large XML files, it might not be feasible to load the whole XML tree into memory. Instead, you can stream XML fragments.| - -## See also - -- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md) diff --git a/docs/csharp/programming-guide/concepts/linq/performance-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/performance-linq-to-xml.md deleted file mode 100644 index b856d03e4f097..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/performance-linq-to-xml.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Performance (LINQ to XML) (C#)" -ms.date: 07/20/2015 -ms.assetid: 43c9f1b7-9bd3-489c-b45c-cb09173a3718 ---- -# Performance (LINQ to XML) (C#) -This section provides information about performance in [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)], specifically the performance of functional construction and queries. - -## In This Section - [Performance of Chained Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/performance-of-chained-queries-linq-to-xml.md) - Provides performance information about chained [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] queries. - - [Atomized XName and XNamespace Objects (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/atomized-xname-and-xnamespace-objects-linq-to-xml.md) - Provides performance information about the atomization of and objects. - - [Pre-Atomization of XName Objects (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/pre-atomization-of-xname-objects-linq-to-xml.md) - Describes a technique to pre-atomize and objects. This can significantly improve performance in some scenarios. - - [Statically Compiled Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/statically-compiled-queries-linq-to-xml.md) - Provides performance information about statically compiled queries, in contrast to the parsing and processing that must be done by an XPath expression evaluator. - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/performance-of-chained-queries-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/performance-of-chained-queries-linq-to-xml.md index bee4fccc50146..0c3e3c33b411c 100644 --- a/docs/csharp/programming-guide/concepts/linq/performance-of-chained-queries-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/performance-of-chained-queries-linq-to-xml.md @@ -48,8 +48,5 @@ foreach (var i in query2) For more information on iterators, see [yield](../../../../csharp/language-reference/keywords/yield.md). - For a more detailed tutorial on chaining queries together, see [Tutorial: Chaining Queries Together](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md). + For a more detailed tutorial on chaining queries together, see [Tutorial: Chaining Queries Together](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md). -## See also - -- [Performance (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/performance-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/pre-atomization-of-xname-objects-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/pre-atomization-of-xname-objects-linq-to-xml.md index 205c21248f08b..f9d5144a7a3ed 100644 --- a/docs/csharp/programming-guide/concepts/linq/pre-atomization-of-xname-objects-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/pre-atomization-of-xname-objects-linq-to-xml.md @@ -113,5 +113,4 @@ Console.WriteLine("Time to construct:{0}", t2 - t1); ## See also -- [Performance (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/performance-linq-to-xml.md) - [Atomized XName and XNamespace Objects (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/atomized-xname-and-xnamespace-objects-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/preserving-white-space-while-loading-or-parsing-xml1.md b/docs/csharp/programming-guide/concepts/linq/preserving-white-space-while-loading-or-parsing-xml1.md index ad89bb5b36310..6e0f3e0f51246 100644 --- a/docs/csharp/programming-guide/concepts/linq/preserving-white-space-while-loading-or-parsing-xml1.md +++ b/docs/csharp/programming-guide/concepts/linq/preserving-white-space-while-loading-or-parsing-xml1.md @@ -30,7 +30,4 @@ This topic describes how to control the white-space behavior of [!INCLUDE[sqltec With these methods, if white space is preserved, insignificant white space is inserted into the XML tree as nodes. If white space is not preserved, text nodes are not inserted. You can create an XML tree by using an . Nodes that are written to the are populated in the tree. However, when you build an XML tree using this method, all nodes are preserved, regardless of whether the node is white space or not, or whether the white space is significant or not. - -## See also - -- [Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/parsing-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md b/docs/csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md index 5ab695e1c9a0e..a021df73678be 100644 --- a/docs/csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md +++ b/docs/csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md @@ -24,7 +24,3 @@ This topic describes how to control white space when serializing an XML tree. If the method does not take as an argument, then the method will format (indent) the serialized XML. In this case, all insignificant white space in the XML tree is discarded. If the method does take as an argument, then you can specify that the method not format (indent) the serialized XML. In this case, all white space in the XML tree is preserved. - -## See also - -- [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-xml-trees.md) diff --git a/docs/csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md deleted file mode 100644 index 5ca14f34ff532..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Programming Guide (LINQ to XML) (C#)" -ms.date: 07/20/2015 -ms.assetid: 4b1ffd10-ab81-4a0d-a0ca-e9876478d924 ---- -# Programming Guide (LINQ to XML) (C#) -This section provides conceptual and how-to information about programming with [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)]. - -## Who Should Read This Documentation - This documentation targets developers who already understand C# and some basic aspects of the .NET Framework. - - The goal of this documentation is to make [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] easy to use for all kinds of developers. [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] makes XML programming easier. You do not have to be an expert developer to use it. - - [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] relies heavily on generic classes. Therefore, is very important that you understand the use of generic classes. Further, it is helpful if you are familiar with delegates that are declared as parameterized types. If you are not familiar with C# generic classes, see [Generic Classes](../../../../csharp/programming-guide/generics/generic-classes.md). - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md)|Provides an overview of the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] classes, and detailed information about three of the most important classes: , , and .| -|[Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md)|Provides conceptual and task-based information about creating XML trees. You can create XML trees by using functional construction, or by parsing XML text from a string or a file. You can also use an to populate an XML tree.| -|[Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md)|Provides detailed information about creating XML trees that use namespaces.| -|[Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-xml-trees.md)|Describes multiple approaches to serializing an XML tree, and gives guidance on which approach to use.| -|[LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md)|Enumerates and describes the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] axis methods, which you must understand before you can write [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] queries.| -|[Querying XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/querying-xml-trees.md)|Provides common examples of querying XML trees.| -|[Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md)|Like the Document Object Model (DOM), [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] enables you to modify an XML tree in place.| -|[Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md)|Provides information about annotations, events, streaming, and other advanced scenarios.| -|[LINQ to XML Security (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-security.md)|Describes security issues associated with LINQ to XML and provides some guidance for mitigating security exposure.| -|[Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md)|Contains the sample XML documents that are used by many examples in this documentation.| - -## See also - -- [Getting Started (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/getting-started-linq-to-xml.md) -- [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/programming-with-nodes.md b/docs/csharp/programming-guide/concepts/linq/programming-with-nodes.md index 27157f8a56302..a729bdd4dd02d 100644 --- a/docs/csharp/programming-guide/concepts/linq/programming-with-nodes.md +++ b/docs/csharp/programming-guide/concepts/linq/programming-with-nodes.md @@ -165,7 +165,4 @@ Console.WriteLine(doc.Nodes().Count()); 1 ``` - -## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/projecting-xml-in-a-different-shape.md b/docs/csharp/programming-guide/concepts/linq/projecting-xml-in-a-different-shape.md index e8b7a96df3c47..627ca6e6dbc38 100644 --- a/docs/csharp/programming-guide/concepts/linq/projecting-xml-in-a-different-shape.md +++ b/docs/csharp/programming-guide/concepts/linq/projecting-xml-in-a-different-shape.md @@ -228,7 +228,4 @@ class Program In the next example, you'll query to find all the text in a Word document: - [Finding Text in Word Documents (C#)](../../../../csharp/programming-guide/concepts/linq/finding-text-in-word-documents.md) - -## See also - -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md deleted file mode 100644 index 8affb5e6cceb1..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Projections and Transformations (LINQ to XML) (C#)" -ms.date: 07/20/2015 -ms.assetid: bb0457ab-1823-47e6-9d2d-c93c958cc913 ---- -# Projections and Transformations (LINQ to XML) (C#) -This section provides examples of [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] projections and transformations. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[How to: Work with Dictionaries Using LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-work-with-dictionaries-using-linq-to-xml.md)|Shows how to transform dictionaries to XML, and how to transform XML into dictionaries.| -|[How to: Transform the Shape of an XML Tree (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-transform-the-shape-of-an-xml-tree.md)|Shows how to transform the shape of an XML document.| -|[How to: Control the Type of a Projection (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-control-the-type-of-a-projection.md)|Shows how to control the type of a [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] query.| -|[How to: Project a New Type (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-project-a-new-type-linq-to-xml.md)|Shows how to project a collection of a user-defined type from a [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] query.| -|[How to: Project an Object Graph (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-project-an-object-graph.md)|Shows how to project a more complex object graph from a [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] query.| -|[How to: Project an Anonymous Type (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-project-an-anonymous-type.md)|Shows how to project a collection of anonymous objects from a [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] query.| -|[How to: Generate Text Files from XML (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-generate-text-files-from-xml.md)|Shows how to transform an XML file to a non-XML text file.| -|[How to: Generate XML from CSV Files (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-generate-xml-from-csv-files.md)|Shows how to use [!INCLUDE[vbteclinq](~/includes/vbteclinq-md.md)] to parse a CSV file and generate XML from it.| - -## See also - -- [Querying XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/querying-xml-trees.md) diff --git a/docs/csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md b/docs/csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md deleted file mode 100644 index 2f4826571ba7d..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Pure Functional Transformations of XML (C#)" -ms.date: 07/20/2015 -ms.assetid: 97e8e582-eb3d-4756-bbfb-0899eb688ae4 ---- -# Pure Functional Transformations of XML (C#) -This section provides a functional transformation tutorial for XML. This includes explanations of the main concepts and language constructs that you must understand to use functional transformations, and examples of using functional transformations to manipulate an XML document. Although this tutorial provides LINQ to XML code examples, all of the underlying concepts also apply to other LINQ technologies. - - The [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) tutorial provides a series of examples, each building on the previous one. These examples demonstrate the pure functional transformational approach to manipulating XML. - - This tutorial assumes a working knowledge of C#. Detailed semantics of the language constructs are not provided in this tutorial, but links are provided to the language documentation as appropriate. - - A working knowledge of basic computer science concepts and XML, including XML namespaces, is also assumed. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Introduction to Pure Functional Transformations (C#)](../../../../csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md)|Describes functional transformations and defines the relevant terminology.| -|[Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md)|Describes lazy evaluation and deferred execution in detail.| -|[Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md)|A tutorial that demonstrates a functional transformation.| - -## See also - -- [Querying XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/querying-xml-trees.md) diff --git a/docs/csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq.md b/docs/csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq.md index e4e816f300727..858ebeee84b29 100644 --- a/docs/csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq.md +++ b/docs/csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq.md @@ -38,4 +38,4 @@ Most queries in the introductory Language Integrated Query ([!INCLUDE[vbteclinq] ## See also -- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md) +- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/index.md) diff --git a/docs/csharp/programming-guide/concepts/linq/querying-an-xdocument-vs-querying-an-xelement.md b/docs/csharp/programming-guide/concepts/linq/querying-an-xdocument-vs-querying-an-xelement.md index 650ce14abd647..bb863921a1fc9 100644 --- a/docs/csharp/programming-guide/concepts/linq/querying-an-xdocument-vs-querying-an-xelement.md +++ b/docs/csharp/programming-guide/concepts/linq/querying-an-xdocument-vs-querying-an-xelement.md @@ -102,7 +102,4 @@ Querying tree loaded with XDocument.Load 2 3 ``` - -## See also - -- [Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/querying-xml-trees.md b/docs/csharp/programming-guide/concepts/linq/querying-xml-trees.md deleted file mode 100644 index f733ac87e6a85..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/querying-xml-trees.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Querying XML Trees (C#)" -ms.date: 07/20/2015 -ms.assetid: 0913d81b-541a-4fd4-9cbf-7ec89fd817ea ---- -# Querying XML Trees (C#) -This section provides examples of [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] queries. - - For more information about writing [!INCLUDE[vbteclinq](~/includes/vbteclinq-md.md)] queries, see [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md). - - After you have instantiated an XML tree, writing queries is the most effective way to extract data from the tree. Also, querying combined with functional construction enables you to generate a new XML document that has a different shape from the original document. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Basic Queries (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml.md)|Provides common examples of querying XML trees.| -|[Projections and Transformations (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/projections-and-transformations-linq-to-xml.md)|Provides common examples of projecting from and transforming XML trees.| -|[Advanced Query Techniques (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-query-techniques-linq-to-xml.md)|Provides query techniques that are useful in more advanced scenarios.| -|[LINQ to XML for XPath Users (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-for-xpath-users.md)|Presents a number of XPath expressions and their [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] equivalents.| -|[Pure Functional Transformations of XML (C#)](../../../../csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md)|Presents a small tutorial on writing queries in the style of functional programming.| - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) -- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md) diff --git a/docs/csharp/programming-guide/concepts/linq/refactoring-into-pure-functions.md b/docs/csharp/programming-guide/concepts/linq/refactoring-into-pure-functions.md index 0bcd10a1fbceb..3cfce5f6b0616 100644 --- a/docs/csharp/programming-guide/concepts/linq/refactoring-into-pure-functions.md +++ b/docs/csharp/programming-guide/concepts/linq/refactoring-into-pure-functions.md @@ -18,7 +18,7 @@ An important aspect of pure functional transformations is learning how to refact One way of transitioning to functional programming is to refactor existing code to eliminate unnecessary side effects and external dependencies. In this way, you can create pure function versions of existing code. - This topic discusses what a pure function is and what it is not. The [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) tutorial shows how to manipulate a WordprocessingML document, and includes two examples of how to refactor using a pure function. + This topic discusses what a pure function is and what it is not. The [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) tutorial shows how to manipulate a WordprocessingML document, and includes two examples of how to refactor using a pure function. ## Eliminating Side Effects and External Dependencies The following examples contrast two non-pure functions and a pure function. diff --git a/docs/csharp/programming-guide/concepts/linq/refactoring-using-a-pure-function.md b/docs/csharp/programming-guide/concepts/linq/refactoring-using-a-pure-function.md index eeaffd2f9aa02..197e7b5903b50 100644 --- a/docs/csharp/programming-guide/concepts/linq/refactoring-using-a-pure-function.md +++ b/docs/csharp/programming-guide/concepts/linq/refactoring-using-a-pure-function.md @@ -175,6 +175,6 @@ StyleName:Code >Hello World< ## See also -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) +- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) - [Refactoring Using an Extension Method (C#)](../../../../csharp/programming-guide/concepts/linq/refactoring-using-an-extension-method.md) - [Refactoring Into Pure Functions (C#)](../../../../csharp/programming-guide/concepts/linq/refactoring-into-pure-functions.md) diff --git a/docs/csharp/programming-guide/concepts/linq/refactoring-using-an-extension-method.md b/docs/csharp/programming-guide/concepts/linq/refactoring-using-an-extension-method.md index e25483657bae6..a60196246cb9c 100644 --- a/docs/csharp/programming-guide/concepts/linq/refactoring-using-an-extension-method.md +++ b/docs/csharp/programming-guide/concepts/linq/refactoring-using-an-extension-method.md @@ -242,5 +242,5 @@ StyleName:Code >Hello World< ## See also -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) +- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) - [Refactoring Into Pure Functions (C#)](../../../../csharp/programming-guide/concepts/linq/refactoring-into-pure-functions.md) diff --git a/docs/csharp/programming-guide/concepts/linq/reference-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/reference-linq-to-xml.md index 58571fdd69650..6d7dd1b65c239 100644 --- a/docs/csharp/programming-guide/concepts/linq/reference-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/reference-linq-to-xml.md @@ -15,4 +15,4 @@ This topic contains links to the LINQ to XML reference topics. ## See also -- [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml.md) +- [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/removing-elements-attributes-and-nodes-from-an-xml-tree.md b/docs/csharp/programming-guide/concepts/linq/removing-elements-attributes-and-nodes-from-an-xml-tree.md index 6faf22374ed20..e8717ed4fcf06 100644 --- a/docs/csharp/programming-guide/concepts/linq/removing-elements-attributes-and-nodes-from-an-xml-tree.md +++ b/docs/csharp/programming-guide/concepts/linq/removing-elements-attributes-and-nodes-from-an-xml-tree.md @@ -72,6 +72,3 @@ Console.WriteLine(root); Notice that the first grandchild element has been removed from `Child1`. All grandchildren elements have been removed from `Child2` and from `Child3`. -## See also - -- [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/retrieving-the-paragraphs-and-their-styles.md b/docs/csharp/programming-guide/concepts/linq/retrieving-the-paragraphs-and-their-styles.md index c7d5894c0d545..57ee9c6ea8281 100644 --- a/docs/csharp/programming-guide/concepts/linq/retrieving-the-paragraphs-and-their-styles.md +++ b/docs/csharp/programming-guide/concepts/linq/retrieving-the-paragraphs-and-their-styles.md @@ -128,4 +128,4 @@ StyleName:Code ## See also -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) +- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) diff --git a/docs/csharp/programming-guide/concepts/linq/retrieving-the-text-of-the-paragraphs.md b/docs/csharp/programming-guide/concepts/linq/retrieving-the-text-of-the-paragraphs.md index 25e8ffd606808..93056bd60bbf3 100644 --- a/docs/csharp/programming-guide/concepts/linq/retrieving-the-text-of-the-paragraphs.md +++ b/docs/csharp/programming-guide/concepts/linq/retrieving-the-text-of-the-paragraphs.md @@ -12,7 +12,7 @@ This example builds on the previous example, [Retrieving the Paragraphs and Thei Of course, it would be possible to write a single query that contains the functionality to retrieve the paragraphs, the style of each paragraph, and the text of each paragraph. However, it often is useful to break up a more complicated query into multiple queries because the resulting code is more modular and easier to maintain. Furthermore, if you need to reuse a portion of the query, it is easier to refactor if the queries are written in this manner. - These queries, which are chained together, use the processing model that is examined in detail in the topic [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md). + These queries, which are chained together, use the processing model that is examined in detail in the topic [Tutorial: Chaining Queries Together (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md). ## Example This example processes a WordprocessingML document, determining the element node, the style name, and the text of each paragraph. This example builds on the previous examples in this tutorial. The new query is called out in comments in the code below. @@ -138,5 +138,5 @@ StyleName:Code >Hello World< ## See also -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) +- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) - [Deferred Execution and Lazy Evaluation in LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md deleted file mode 100644 index 0000cda78a744..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Sample XML Documents (LINQ to XML)" -ms.date: 07/20/2015 -ms.assetid: 9ec89809-41a1-484c-b1e3-6c4ecdca7b8d ---- -# Sample XML Documents (LINQ to XML) -The following example files are used in the code samples and code snippets throughout the [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] documentation. - -> [!NOTE] -> The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, places, or events is intended or should be inferred. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Sample XML File: Typical Purchase Order (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-linq-to-xml-1.md)|An XML document that contains a typical purchase order.| -|[Sample XML File: Typical Purchase Order in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-in-a-namespace.md)|An XML document in a namespace that contains a typical purchase order.| -|[Sample XML File: Multiple Purchase Orders (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-linq-to-xml.md)|An XML document that contains multiple purchase orders.| -|[Sample XML File: Multiple Purchase Orders in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-in-a-namespace.md)|An XML document in a namespace that contains multiple purchase orders.| -|[Sample XML File: Test Configuration (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-linq-to-xml.md)|An XML document that contains some pseudo test configuration data.| -|[Sample XML File: Test Configuration in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-in-a-namespace1.md)|An XML document in a namespace that contains some pseudo test configuration data.| -|[Sample XML File: Customers and Orders (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-linq-to-xml-2.md)|An XML document that contains customers and orders.| -|[Sample XSD File: Customers and Orders](../../../../csharp/programming-guide/concepts/linq/sample-xsd-file-customers-and-orders1.md)|An Xml Schema Definition (XSD) that validates the [Sample XML File: Customers and Orders (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-linq-to-xml-2.md).| -|[Sample XML File: Customers and Orders in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-in-a-namespace.md)|An XML document in a namespace that contains customers and orders.| -|[Sample XML File: Numerical Data (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-linq-to-xml.md)|An XML document that contains data suitable for summing and grouping.| -|[Sample XML File: Numerical Data in a Namespace](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-in-a-namespace.md)|An XML document in a namespace that contains data suitable for summing and grouping.| -|[Sample XML File: Books (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-books-linq-to-xml.md)|An XML document that contains a catalog of books.| -|[Sample XML File: Consolidated Purchase Orders](../../../../csharp/programming-guide/concepts/linq/sample-xml-file-consolidated-purchase-orders.md)|Presents an XML document that contains purchase orders that are in different namespaces.| - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-books-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-books-linq-to-xml.md index 79e43dfb9ef72..8ead08f3453f5 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-books-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-books-linq-to-xml.md @@ -32,7 +32,3 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-consolidated-purchase-orders.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-consolidated-purchase-orders.md index a93ca94884883..32d51dddbc815 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-consolidated-purchase-orders.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-consolidated-purchase-orders.md @@ -137,7 +137,3 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-in-a-namespace.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-in-a-namespace.md index 9c4d26de3bd6e..6c7ad0859fb6c 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-in-a-namespace.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-in-a-namespace.md @@ -423,7 +423,3 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-linq-to-xml-2.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-linq-to-xml-2.md index bbc1d1d811a64..896d49184c720 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-linq-to-xml-2.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-customers-and-orders-linq-to-xml-2.md @@ -427,7 +427,3 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-in-a-namespace.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-in-a-namespace.md index 79fe120fdb2d4..b66448c2ad28a 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-in-a-namespace.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-in-a-namespace.md @@ -102,7 +102,4 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-linq-to-xml.md index e2ad3a360c18f..5da89099a1c34 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-multiple-purchase-orders-linq-to-xml.md @@ -102,7 +102,4 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-in-a-namespace.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-in-a-namespace.md index 318fd92a6f92a..f052b9ecd69ac 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-in-a-namespace.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-in-a-namespace.md @@ -48,7 +48,3 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-linq-to-xml.md index b504737ab9fe3..cef4862ee746b 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-numerical-data-linq-to-xml.md @@ -48,7 +48,4 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-in-a-namespace1.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-in-a-namespace1.md index cfa557df1d695..b11e9bc15e012 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-in-a-namespace1.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-in-a-namespace1.md @@ -49,7 +49,4 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-linq-to-xml.md index 21e4c4762cc38..54a5d0936c185 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-test-configuration-linq-to-xml.md @@ -49,7 +49,3 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-in-a-namespace.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-in-a-namespace.md index d3d4aa2f18635..4384113f4c850 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-in-a-namespace.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-in-a-namespace.md @@ -47,7 +47,4 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-linq-to-xml-1.md b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-linq-to-xml-1.md index 0ee2a8298ddd1..9b51def85a3d0 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-linq-to-xml-1.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xml-file-typical-purchase-order-linq-to-xml-1.md @@ -44,7 +44,4 @@ The following XML file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/sample-xsd-file-customers-and-orders1.md b/docs/csharp/programming-guide/concepts/linq/sample-xsd-file-customers-and-orders1.md index c8a1f1e3c3ee3..ca633bafc959f 100644 --- a/docs/csharp/programming-guide/concepts/linq/sample-xsd-file-customers-and-orders1.md +++ b/docs/csharp/programming-guide/concepts/linq/sample-xsd-file-customers-and-orders1.md @@ -86,7 +86,4 @@ The following XSD file is used in various examples in the [!INCLUDE[sqltecxlinq] ``` - -## See also - -- [Sample XML Documents (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/sample-xml-documents-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/scope-of-default-namespaces.md b/docs/csharp/programming-guide/concepts/linq/scope-of-default-namespaces.md index 1fccf50f0c8c1..992edcf3c770f 100644 --- a/docs/csharp/programming-guide/concepts/linq/scope-of-default-namespaces.md +++ b/docs/csharp/programming-guide/concepts/linq/scope-of-default-namespaces.md @@ -84,4 +84,4 @@ End of result set ## See also -- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md) +- [Working with XML Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/serializing-object-graphs-that-contain-xelement-objects.md b/docs/csharp/programming-guide/concepts/linq/serializing-object-graphs-that-contain-xelement-objects.md deleted file mode 100644 index eaf3ac3d664ee..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/serializing-object-graphs-that-contain-xelement-objects.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Serializing Object Graphs that Contain XElement Objects (C#)" -ms.date: 07/20/2015 -ms.assetid: fcbc3951-3cc4-4d0f-9259-e97549ed68f0 ---- -# Serializing Object Graphs that Contain XElement Objects (C#) -This topic introduces the capability of serializing object graphs that contain references to objects of type . To facility this type of serializing, implements the interface. - - Note that only the class implements serialization. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[How to: Serialize Using XmlSerializer (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer.md)|Demonstrates how to serialize using .| -|[How to: Serialize Using DataContractSerializer (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-serialize-using-datacontractserializer.md)|Demonstrates how to serialize using .| - -## See also - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) diff --git a/docs/csharp/programming-guide/concepts/linq/serializing-to-an-xmlreader-invoking-xslt.md b/docs/csharp/programming-guide/concepts/linq/serializing-to-an-xmlreader-invoking-xslt.md index 5e94355a61dd5..b7b5bdb32f236 100644 --- a/docs/csharp/programming-guide/concepts/linq/serializing-to-an-xmlreader-invoking-xslt.md +++ b/docs/csharp/programming-guide/concepts/linq/serializing-to-an-xmlreader-invoking-xslt.md @@ -55,4 +55,4 @@ Console.WriteLine(newTree); ## See also -- [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-xml-trees.md) +- [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md) diff --git a/docs/csharp/programming-guide/concepts/linq/serializing-to-files-textwriters-and-xmlwriters.md b/docs/csharp/programming-guide/concepts/linq/serializing-to-files-textwriters-and-xmlwriters.md index 4f226e71ac821..c10ff68471e4c 100644 --- a/docs/csharp/programming-guide/concepts/linq/serializing-to-files-textwriters-and-xmlwriters.md +++ b/docs/csharp/programming-guide/concepts/linq/serializing-to-files-textwriters-and-xmlwriters.md @@ -28,4 +28,4 @@ For examples, see the appropriate reference topic. ## See also -- [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-xml-trees.md) +- [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md) diff --git a/docs/csharp/programming-guide/concepts/linq/serializing-with-an-xml-declaration.md b/docs/csharp/programming-guide/concepts/linq/serializing-with-an-xml-declaration.md index 42c47197e2a30..d79b37954d7fd 100644 --- a/docs/csharp/programming-guide/concepts/linq/serializing-with-an-xml-declaration.md +++ b/docs/csharp/programming-guide/concepts/linq/serializing-with-an-xml-declaration.md @@ -57,4 +57,4 @@ Console.WriteLine(sb.ToString()); ## See also -- [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-xml-trees.md) +- [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md) diff --git a/docs/csharp/programming-guide/concepts/linq/serializing-xml-trees.md b/docs/csharp/programming-guide/concepts/linq/serializing-xml-trees.md deleted file mode 100644 index 3da3ded39b293..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/serializing-xml-trees.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Serializing XML Trees (C#)" -ms.date: 07/20/2015 -ms.assetid: b3937e54-4ce9-4236-ac96-14e7972aa594 ---- -# Serializing XML Trees (C#) -Serializing an XML tree means generating XML from the XML tree. You can serialize to a file, to a concrete implementation of the class, or to a concrete implementation of an . - - You can control various aspects of serialization. For example, you can control whether to indent the serialized XML, and whether to write an XML declaration. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Preserving White Space While Serializing](../../../../csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md)|Describes how to control white space behavior when you serialize XML trees.| -|[Serializing with an XML Declaration (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-with-an-xml-declaration.md)|Describes how to serialize an XML tree that includes an XML declaration.| -|[Serializing to Files, TextWriters, and XmlWriters](../../../../csharp/programming-guide/concepts/linq/serializing-to-files-textwriters-and-xmlwriters.md)|Describes how to serialize a document to a , a , or an .| -|[Serializing to an XmlReader (Invoking XSLT) (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-to-an-xmlreader-invoking-xslt.md)|Describes how to create a that enables another module to read the contents of an XML tree.| - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md b/docs/csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md index 5646e97ce20f1..9b6b4922b8b05 100644 --- a/docs/csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md +++ b/docs/csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md @@ -90,4 +90,4 @@ using (Package wdPackage = Package.Open("SampleDoc.docx", FileMode.Open, FileAcc ## See also -- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md) +- [Tutorial: Manipulating Content in a WordprocessingML Document (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md) diff --git a/docs/csharp/programming-guide/concepts/linq/statically-compiled-queries-linq-to-xml.md b/docs/csharp/programming-guide/concepts/linq/statically-compiled-queries-linq-to-xml.md index 851c3cbb415ad..6d65b3f17b0b8 100644 --- a/docs/csharp/programming-guide/concepts/linq/statically-compiled-queries-linq-to-xml.md +++ b/docs/csharp/programming-guide/concepts/linq/statically-compiled-queries-linq-to-xml.md @@ -86,7 +86,4 @@ reader.Close(); - It iterates through the nodes, appropriately selecting the nodes for the result set based on the evaluation of the expression. This is significantly more than the work done by the corresponding LINQ to XML query. The specific performance difference varies for different types of queries, but in general LINQ to XML queries do less work, and therefore perform better, than evaluating XPath expressions using . - -## See also - -- [Performance (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/performance-linq-to-xml.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/style-part-of-a-wordprocessingml-document.md b/docs/csharp/programming-guide/concepts/linq/style-part-of-a-wordprocessingml-document.md index 763bf9f104740..6445907ad410f 100644 --- a/docs/csharp/programming-guide/concepts/linq/style-part-of-a-wordprocessingml-document.md +++ b/docs/csharp/programming-guide/concepts/linq/style-part-of-a-wordprocessingml-document.md @@ -133,7 +133,3 @@ This topic shows an example of the style part of the Office Open XML Wordprocess ``` - -## See also - -- [Details of Office Open XML WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md) diff --git a/docs/csharp/programming-guide/concepts/linq/toc.yml b/docs/csharp/programming-guide/concepts/linq/toc.yml index 2649dc034c390..5e3a38117a188 100644 --- a/docs/csharp/programming-guide/concepts/linq/toc.yml +++ b/docs/csharp/programming-guide/concepts/linq/toc.yml @@ -1,10 +1,7 @@ - name: Language-Integrated Query (LINQ) href: index.md items: - - name: Introduction to LINQ - href: introduction-to-linq.md - name: Getting Started with LINQ in C# - href: getting-started-with-linq.md items: - name: Introduction to LINQ Queries href: introduction-to-linq-queries.md @@ -23,8 +20,9 @@ - name: "Walkthrough: Writing Queries in C# (LINQ)" href: walkthrough-writing-queries-linq.md - name: Standard Query Operators Overview - href: standard-query-operators-overview.md items: + - name: Overview + href: standard-query-operators-overview.md - name: Query Expression Syntax for Standard Query Operators href: query-expression-syntax-for-standard-query-operators.md - name: Classification of Standard Query Operators by Manner of Execution @@ -58,10 +56,12 @@ - name: Aggregation Operations href: aggregation-operations.md - name: LINQ to Objects - href: linq-to-objects.md items: + - name: Overview + href: linq-to-objects.md - name: LINQ and Strings href: linq-and-strings.md + - name: How to items: - name: "How to: Count Occurrences of a Word in a String (LINQ)" href: how-to-count-occurrences-of-a-word-in-a-string-linq.md @@ -89,12 +89,12 @@ href: how-to-compute-column-values-in-a-csv-text-file-linq.md - name: LINQ and Reflection href: linq-and-reflection.md - items: - - name: "How to: Query An Assembly's Metadata with Reflection (LINQ)" - href: how-to-query-an-assembly-s-metadata-with-reflection-linq.md + - name: "How to: Query An Assembly's Metadata with Reflection (LINQ)" + href: how-to-query-an-assembly-s-metadata-with-reflection-linq.md - name: LINQ and File Directories - href: linq-and-file-directories.md items: + - name: Overview + href: linq-and-file-directories.md - name: "How to: Query for Files with a Specified Attribute or Name" href: how-to-query-for-files-with-a-specified-attribute-or-name.md - name: "How to: Group Files by Extension (LINQ)" @@ -114,10 +114,8 @@ - name: "How to: Add Custom Methods for LINQ Queries" href: how-to-add-custom-methods-for-linq-queries.md - name: LINQ to XML - href: linq-to-xml.md items: - name: Getting Started (LINQ to XML) - href: getting-started-linq-to-xml.md items: - name: LINQ to XML Overview href: linq-to-xml-overview.md @@ -126,10 +124,8 @@ - name: LINQ to XML vs. Other XML Technologies href: linq-to-xml-vs-other-xml-technologies.md - name: Programming Guide (LINQ to XML) - href: programming-guide-linq-to-xml.md items: - name: LINQ to XML Programming Overview - href: linq-to-xml-programming-overview.md items: - name: Functional vs. Procedural Programming (LINQ to XML) href: functional-vs-procedural-programming-linq-to-xml.md @@ -144,7 +140,6 @@ - name: "How to: Build LINQ to XML Examples" href: how-to-build-linq-to-xml-examples.md - name: Creating XML Trees - href: creating-xml-trees.md items: - name: Functional Construction (LINQ to XML) href: functional-construction-linq-to-xml.md @@ -185,7 +180,6 @@ - name: "How to: Write Queries on XML in Namespaces" href: how-to-write-queries-on-xml-in-namespaces.md - name: Serializing XML Trees - href: serializing-xml-trees.md items: - name: Preserving White Space While Serializing href: preserving-white-space-while-serializing.md @@ -196,7 +190,6 @@ - name: Serializing to an XmlReader (Invoking XSLT) href: serializing-to-an-xmlreader-invoking-xslt.md - name: LINQ to XML Axes - href: linq-to-xml-axes.md items: - name: LINQ to XML Axes Overview href: linq-to-xml-axes-overview.md @@ -219,10 +212,8 @@ - name: "How to: Retrieve the Shallow Value of an Element" href: how-to-retrieve-the-shallow-value-of-an-element.md - name: Querying XML Trees - href: querying-xml-trees.md items: - name: Basic Queries (LINQ to XML) - href: basic-queries-linq-to-xml.md items: - name: "How to: Find an Element with a Specific Attribute" href: how-to-find-an-element-with-a-specific-attribute.md @@ -251,7 +242,6 @@ - name: "How to: Debug Empty Query Results Sets" href: how-to-debug-empty-query-results-sets.md - name: Projections and Transformations (LINQ to XML) - href: projections-and-transformations-linq-to-xml.md items: - name: "How to: Work with Dictionaries Using LINQ to XML" href: how-to-work-with-dictionaries-using-linq-to-xml.md @@ -270,7 +260,6 @@ - name: "How to: Generate XML from CSV Files" href: how-to-generate-xml-from-csv-files.md - name: Advanced Query Techniques (LINQ to XML) - href: advanced-query-techniques-linq-to-xml.md items: - name: "How to: Join Two Collections (LINQ to XML)" href: how-to-join-two-collections-linq-to-xml.md @@ -291,7 +280,6 @@ - name: "How to: Populate an XML Tree from the File System" href: how-to-populate-an-xml-tree-from-the-file-system.md - name: LINQ to XML for XPath Users - href: linq-to-xml-for-xpath-users.md items: - name: Comparison of XPath and LINQ to XML href: comparison-of-xpath-and-linq-to-xml.md @@ -328,23 +316,20 @@ - name: "How to: Find the Immediate Preceding Sibling (XPath-LINQ to XML)" href: how-to-find-the-immediate-preceding-sibling-xpath-linq-to-xml.md - name: Pure Functional Transformations of XML - href: pure-functional-transformations-of-xml.md items: - name: Introduction to Pure Functional Transformations href: introduction-to-pure-functional-transformations.md - items: - - name: Concepts and Terminology (Functional Transformation) - href: concepts-and-terminology-functional-transformation.md - - name: Functional Programming vs. Imperative Programming - href: functional-programming-vs-imperative-programming.md - - name: Refactoring Into Pure Functions - href: refactoring-into-pure-functions.md - - name: Applicability of Functional Transformation - href: applicability-of-functional-transformation.md - - name: Functional Transformation of XML - href: functional-transformation-of-xml.md + - name: Concepts and Terminology (Functional Transformation) + href: concepts-and-terminology-functional-transformation.md + - name: Functional Programming vs. Imperative Programming + href: functional-programming-vs-imperative-programming.md + - name: Refactoring Into Pure Functions + href: refactoring-into-pure-functions.md + - name: Applicability of Functional Transformation + href: applicability-of-functional-transformation.md + - name: Functional Transformation of XML + href: functional-transformation-of-xml.md - name: "Tutorial: Chaining Queries Together" - href: tutorial-chaining-queries-together.md items: - name: Deferred Execution and Lazy Evaluation in LINQ to XML href: deferred-execution-and-lazy-evaluation-in-linq-to-xml.md @@ -357,7 +342,6 @@ - name: Chaining Standard Query Operators Together href: chaining-standard-query-operators-together.md - name: "Tutorial: Manipulating Content in a WordprocessingML Document" - href: tutorial-manipulating-content-in-a-wordprocessingml-document.md items: - name: Shape of WordprocessingML Documents href: shape-of-wordprocessingml-documents.md @@ -378,7 +362,6 @@ - name: Finding Text in Word Documents href: finding-text-in-word-documents.md - name: Details of Office Open XML WordprocessingML Documents - href: details-of-office-open-xml-wordprocessingml-documents.md items: - name: WordprocessingML Document with Styles href: wordprocessingml-document-with-styles.md @@ -387,7 +370,6 @@ - name: Example that Outputs Office Open XML Document Parts href: example-that-outputs-office-open-xml-document-parts.md - name: Modifying XML Trees (LINQ to XML) - href: modifying-xml-trees-linq-to-xml.md items: - name: In-Memory XML Tree Modification vs. Functional Construction (LINQ to XML) href: in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md @@ -402,7 +384,6 @@ - name: "How to: Change the Namespace for an Entire XML Tree" href: how-to-change-the-namespace-for-an-entire-xml-tree.md - name: Performance (LINQ to XML) - href: performance-linq-to-xml.md items: - name: Performance of Chained Queries (LINQ to XML) href: performance-of-chained-queries-linq-to-xml.md @@ -413,7 +394,6 @@ - name: Statically Compiled Queries (LINQ to XML) href: statically-compiled-queries-linq-to-xml.md - name: Advanced LINQ to XML Programming - href: advanced-linq-to-xml-programming.md items: - name: LINQ to XML Annotations href: linq-to-xml-annotations.md @@ -434,16 +414,13 @@ - name: "How to: Use Annotations to Transform LINQ to XML Trees in an XSLT Style" href: how-to-use-annotations-to-transform-linq-to-xml-trees-in-an-xslt-style.md - name: Serializing Object Graphs that Contain XElement Objects - href: serializing-object-graphs-that-contain-xelement-objects.md - items: - - name: "How to: Serialize Using XmlSerializer" - href: how-to-serialize-using-xmlserializer.md - - name: "How to: Serialize Using DataContractSerializer" - href: how-to-serialize-using-datacontractserializer.md + - name: "How to: Serialize Using XmlSerializer" + href: how-to-serialize-using-xmlserializer.md + - name: "How to: Serialize Using DataContractSerializer" + href: how-to-serialize-using-datacontractserializer.md - name: LINQ to XML Security href: linq-to-xml-security.md - name: Sample XML Documents (LINQ to XML) - href: sample-xml-documents-linq-to-xml.md items: - name: "Sample XML File: Typical Purchase Order (LINQ to XML)" href: sample-xml-file-typical-purchase-order-linq-to-xml-1.md diff --git a/docs/csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md b/docs/csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md deleted file mode 100644 index 87c26fc4da869..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/tutorial-chaining-queries-together.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Tutorial: Chaining Queries Together (C#)" -ms.date: 07/20/2015 -ms.assetid: 44f54444-c4c5-4c23-9d19-986b957b8eda ---- -# Tutorial: Chaining Queries Together (C#) -This tutorial illustrates the processing model when you chain queries together. Chaining queries together is a key part of writing functional transformations. It is important to understand exactly how chained queries work. - - The queries that process Office Open XML documents use this technique extensively. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Deferred Execution and Lazy Evaluation in LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-and-lazy-evaluation-in-linq-to-xml.md)|Describes the concepts of deferred execution and lazy evaluation.| -|[Deferred Execution Example (C#)](../../../../csharp/programming-guide/concepts/linq/deferred-execution-example.md)|Provides an example of deferred execution.| -|[Chaining Queries Example (C#)](../../../../csharp/programming-guide/concepts/linq/chaining-queries-example.md)|Shows how deferred execution works when chaining queries together.| -|[Intermediate Materialization (C#)](../../../../csharp/programming-guide/concepts/linq/intermediate-materialization.md)|Identifies and illustrates the semantics of intermediate materialization.| -|[Chaining Standard Query Operators Together (C#)](../../../../csharp/programming-guide/concepts/linq/chaining-standard-query-operators-together.md)|Describes the lazy semantics of the standard query operators.| - -## See also - -- [Pure Functional Transformations of XML (C#)](../../../../csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md b/docs/csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md deleted file mode 100644 index da7eb06add07d..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/tutorial-manipulating-content-in-a-wordprocessingml-document.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Tutorial: Manipulating Content in a WordprocessingML Document (C#)" -ms.date: 07/20/2015 -ms.assetid: bc9815f8-13d2-4f50-a4d1-b1c0d50d37b3 ---- -# Tutorial: Manipulating Content in a WordprocessingML Document (C#) -This tutorial shows how to apply the functional transformational approach and LINQ to XML to manipulate XML documents. The C# examples query and manipulate information in Office Open XML WordprocessingML documents that are saved by Microsoft Word. - - For more information, see [Introduction to WordprocessingML](https://ericwhite.com/blog/introduction-to-wordprocessingml-series/). - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Shape of WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/shape-of-wordprocessingml-documents.md)|Provides a quick explanation of details of a WordprocessingML document.| -|[Creating the Source Office Open XML Document (C#)](../../../../csharp/programming-guide/concepts/linq/creating-the-source-office-open-xml-document.md)|Provides step-by-step instructions to create the source document for queries in this tutorial.| -|[Finding the Default Paragraph Style (C#)](../../../../csharp/programming-guide/concepts/linq/finding-the-default-paragraph-style.md)|Shows a query to find the name of the default style for a document.| -|[Retrieving the Paragraphs and Their Styles (C#)](../../../../csharp/programming-guide/concepts/linq/retrieving-the-paragraphs-and-their-styles.md)|Shows a query that retrieves a collection of the paragraphs of a document.| -|[Retrieving the Text of the Paragraphs (C#)](../../../../csharp/programming-guide/concepts/linq/retrieving-the-text-of-the-paragraphs.md)|Augments the previous query to retrieve the text of each paragraph.| -|[Refactoring Using an Extension Method (C#)](../../../../csharp/programming-guide/concepts/linq/refactoring-using-an-extension-method.md)|Simplifies the code by refactoring using an extension method.| -|[Refactoring Using a Pure Function (C#)](../../../../csharp/programming-guide/concepts/linq/refactoring-using-a-pure-function.md)|Further simplifies the code by refactoring using a pure function.| -|[Projecting XML in a Different Shape (C#)](../../../../csharp/programming-guide/concepts/linq/projecting-xml-in-a-different-shape.md)|Completes an XML transformation by projecting XML in a different shape than the original document.| -|[Finding Text in Word Documents (C#)](../../../../csharp/programming-guide/concepts/linq/finding-text-in-word-documents.md)|Uses the previous queries to find a specified text string in a document.| -|[Details of Office Open XML WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md)|Provides some details of Office Open XML WordprocessingML documents.| - -## See also - -- [Pure Functional Transformations of XML (C#)](../../../../csharp/programming-guide/concepts/linq/pure-functional-transformations-of-xml.md) -- [Introduction to Pure Functional Transformations (C#)](../../../../csharp/programming-guide/concepts/linq/introduction-to-pure-functional-transformations.md) diff --git a/docs/csharp/programming-guide/concepts/linq/type-relationships-in-linq-query-operations.md b/docs/csharp/programming-guide/concepts/linq/type-relationships-in-linq-query-operations.md index f38a3c2feef43..48ca66d868708 100644 --- a/docs/csharp/programming-guide/concepts/linq/type-relationships-in-linq-query-operations.md +++ b/docs/csharp/programming-guide/concepts/linq/type-relationships-in-linq-query-operations.md @@ -61,4 +61,4 @@ To write queries effectively, you should understand how types of the variables i ## See also -- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md) +- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/index.md) diff --git a/docs/csharp/programming-guide/concepts/linq/using-xslt-to-transform-an-xml-tree.md b/docs/csharp/programming-guide/concepts/linq/using-xslt-to-transform-an-xml-tree.md index 674a2127a135e..7ff2ea3106963 100644 --- a/docs/csharp/programming-guide/concepts/linq/using-xslt-to-transform-an-xml-tree.md +++ b/docs/csharp/programming-guide/concepts/linq/using-xslt-to-transform-an-xml-tree.md @@ -56,4 +56,3 @@ Console.WriteLine(newTree); - - -- [Advanced LINQ to XML Programming (C#)](../../../../csharp/programming-guide/concepts/linq/advanced-linq-to-xml-programming.md) diff --git a/docs/csharp/programming-guide/concepts/linq/valid-content-of-xelement-and-xdocument-objects3.md b/docs/csharp/programming-guide/concepts/linq/valid-content-of-xelement-and-xdocument-objects3.md index fbe22fcb04590..b79d60b4d8d56 100644 --- a/docs/csharp/programming-guide/concepts/linq/valid-content-of-xelement-and-xdocument-objects3.md +++ b/docs/csharp/programming-guide/concepts/linq/valid-content-of-xelement-and-xdocument-objects3.md @@ -84,4 +84,4 @@ This topic describes the valid arguments that can be passed to constructors and ## See also -- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md) +- [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/walkthrough-writing-queries-linq.md b/docs/csharp/programming-guide/concepts/linq/walkthrough-writing-queries-linq.md index 4baf868f56046..d06106882a88d 100644 --- a/docs/csharp/programming-guide/concepts/linq/walkthrough-writing-queries-linq.md +++ b/docs/csharp/programming-guide/concepts/linq/walkthrough-writing-queries-linq.md @@ -172,12 +172,12 @@ This walkthrough demonstrates the C# language features that are used to write LI [LINQ to DataSet](../../../../framework/data/adonet/linq-to-dataset.md) - [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml.md) + [LINQ to XML (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) [LINQ to Objects (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-objects.md) ## See also - [Language-Integrated Query (LINQ) (C#)](../../../../csharp/programming-guide/concepts/linq/index.md) -- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/getting-started-with-linq.md) +- [Getting Started with LINQ in C#](../../../../csharp/programming-guide/concepts/linq/index.md) - [LINQ Query Expressions](../../../../csharp/programming-guide/linq-query-expressions/index.md) diff --git a/docs/csharp/programming-guide/concepts/linq/wordprocessingml-document-with-styles.md b/docs/csharp/programming-guide/concepts/linq/wordprocessingml-document-with-styles.md index 1efcc74730a73..86cac6485d06a 100644 --- a/docs/csharp/programming-guide/concepts/linq/wordprocessingml-document-with-styles.md +++ b/docs/csharp/programming-guide/concepts/linq/wordprocessingml-document-with-styles.md @@ -130,7 +130,4 @@ More complicated WordprocessingML documents have paragraphs that are formatted w ``` - -## See also - -- [Details of Office Open XML WordprocessingML Documents (C#)](../../../../csharp/programming-guide/concepts/linq/details-of-office-open-xml-wordprocessingml-documents.md) + \ No newline at end of file diff --git a/docs/csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md b/docs/csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md deleted file mode 100644 index 6bf77f82c6bcf..0000000000000 --- a/docs/csharp/programming-guide/concepts/linq/working-with-xml-namespaces.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Working with XML Namespaces (C#)" -ms.date: 07/20/2015 -ms.assetid: 05cf4dc7-7b25-40f0-abc9-1bc35de4b48a ---- -# Working with XML Namespaces (C#) -The topics in this section describe how [!INCLUDE[sqltecxlinq](~/includes/sqltecxlinq-md.md)] supports namespaces. - -## In This Section - -|Topic|Description| -|-----------|-----------------| -|[Namespaces Overview (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/namespaces-overview-linq-to-xml.md)|This topic introduces namespaces, the class, and the class.| -|[How to: Create a Document with Namespaces (C#) (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/how-to-create-a-document-with-namespaces-linq-to-xml.md)|Shows how to create documents with namespaces.| -|[How to: Control Namespace Prefixes (C#) (LINQ to XML)](../../../../csharp/programming-guide/concepts/linq/how-to-control-namespace-prefixes-linq-to-xml.md)|Shows how to control namespace prefixes by inserting namespace attributes into the XML tree.| -|[Scope of Default Namespaces in C#](../../../../csharp/programming-guide/concepts/linq/scope-of-default-namespaces.md)|Demonstrates the appropriate way to write queries for XML in the default namespace.| -|[How to: Write Queries on XML in Namespaces (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-write-queries-on-xml-in-namespaces.md)|Demonstrates how to specify XML namespaces in C# LINQ to XML queries.| - -## See also - -- [Programming Guide (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/programming-guide-linq-to-xml.md) diff --git a/docs/csharp/programming-guide/concepts/linq/xattribute-class-overview.md b/docs/csharp/programming-guide/concepts/linq/xattribute-class-overview.md index 3753bd16dc916..af1e81db228bf 100644 --- a/docs/csharp/programming-guide/concepts/linq/xattribute-class-overview.md +++ b/docs/csharp/programming-guide/concepts/linq/xattribute-class-overview.md @@ -75,4 +75,4 @@ Console.WriteLine(c); ## See also -- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md) +- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/xdocument-class-overview.md b/docs/csharp/programming-guide/concepts/linq/xdocument-class-overview.md index 6813353a562dd..663ae488d3f22 100644 --- a/docs/csharp/programming-guide/concepts/linq/xdocument-class-overview.md +++ b/docs/csharp/programming-guide/concepts/linq/xdocument-class-overview.md @@ -82,4 +82,4 @@ d.Save("test.xml"); ## See also -- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md) +- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/linq/xelement-class-overview.md b/docs/csharp/programming-guide/concepts/linq/xelement-class-overview.md index 43da43f868ed6..318969343dd5d 100644 --- a/docs/csharp/programming-guide/concepts/linq/xelement-class-overview.md +++ b/docs/csharp/programming-guide/concepts/linq/xelement-class-overview.md @@ -12,9 +12,9 @@ The class is one of the fundamental classes in [ ### Constructing XML Trees You can construct XML trees in a variety of ways, including the following: -- You can construct an XML tree in code. For more information, see [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/creating-xml-trees.md). +- You can construct an XML tree in code. For more information, see [Creating XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md). -- You can parse XML from various sources, including a , text files, or a Web address (URL). For more information, see [Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/parsing-xml.md). +- You can parse XML from various sources, including a , text files, or a Web address (URL). For more information, see [Parsing XML (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-parse-a-string.md). - You can use an to populate the tree. For more information, see . @@ -73,23 +73,23 @@ Console.WriteLine(xmlTree); ### Serializing XML Trees You can serialize the XML tree to a , a , or an . - For more information, see [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/serializing-xml-trees.md). + For more information, see [Serializing XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/preserving-white-space-while-serializing.md). ### Retrieving XML Data via Axis Methods You can use axis methods to retrieve attributes, child elements, descendant elements, and ancestor elements. [!INCLUDE[vbteclinq](~/includes/vbteclinq-md.md)] queries operate on axis methods, and provide several flexible and powerful ways to navigate through and process an XML tree. - For more information, see [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes.md). + For more information, see [LINQ to XML Axes (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-axes-overview.md). ### Querying XML Trees You can write [!INCLUDE[vbteclinq](~/includes/vbteclinq-md.md)] queries that extract data from an XML tree. - For more information, see [Querying XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/querying-xml-trees.md). + For more information, see [Querying XML Trees (C#)](../../../../csharp/programming-guide/concepts/linq/how-to-find-an-element-with-a-specific-attribute.md). ### Modifying XML Trees You can modify an element in a variety of ways, including changing its content or attributes. You can also remove an element from its parent. - For more information, see [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/modifying-xml-trees-linq-to-xml.md). + For more information, see [Modifying XML Trees (LINQ to XML) (C#)](../../../../csharp/programming-guide/concepts/linq/in-memory-xml-tree-modification-vs-functional-construction-linq-to-xml.md). ## See also -- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-programming-overview.md) +- [LINQ to XML Programming Overview (C#)](../../../../csharp/programming-guide/concepts/linq/linq-to-xml-overview.md) diff --git a/docs/csharp/programming-guide/concepts/toc.yml b/docs/csharp/programming-guide/concepts/toc.yml index 414d7a9a38e10..0957dbf48b0ad 100644 --- a/docs/csharp/programming-guide/concepts/toc.yml +++ b/docs/csharp/programming-guide/concepts/toc.yml @@ -1,8 +1,6 @@ - name: Programming Concepts href: index.md items: - - name: Assemblies and the Global Assembly Cache - href: assemblies-gac/ - name: Asynchronous Programming with async and await href: async/ - name: Attributes diff --git a/docs/csharp/programming-guide/generics/index.md b/docs/csharp/programming-guide/generics/index.md index 09c307c9e1a4b..f5e5e8c04c43d 100644 --- a/docs/csharp/programming-guide/generics/index.md +++ b/docs/csharp/programming-guide/generics/index.md @@ -11,6 +11,24 @@ ms.assetid: 75ea8509-a4ea-4e7a-a2b3-cf72482e9282 Generics were added to version 2.0 of the C# language and the common language runtime (CLR). Generics introduce to the .NET Framework the concept of type parameters, which make it possible to design classes and methods that defer the specification of one or more types until the class or method is declared and instantiated by client code. For example, by using a generic type parameter T you can write a single class that other client code can use without incurring the cost or risk of runtime casts or boxing operations, as shown here: [!code-csharp[csProgGuideGenerics#1](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#1)] + +Generic classes and methods combine reusability, type safety and efficiency in a way that their non-generic counterparts cannot. Generics are most frequently used with collections and the methods that operate on them. Version 2.0 of the .NET Framework class library provides a new namespace, , which contains several new generic-based collection classes. It is recommended that all applications that target the .NET Framework 2.0 and later use the new generic collection classes instead of the older non-generic counterparts such as . For more information, see [Generics in .NET](../../../standard/generics/index.md). + + Of course, you can also create custom generic types and methods to provide your own generalized solutions and design patterns that are type-safe and efficient. The following code example shows a simple generic linked-list class for demonstration purposes. (In most cases, you should use the class provided by the .NET Framework class library instead of creating your own.) The type parameter `T` is used in several locations where a concrete type would ordinarily be used to indicate the type of the item stored in the list. It is used in the following ways: + +- As the type of a method parameter in the `AddHead` method. + +- As the return type of the `Data` property in the nested `Node` class. + +- As the type of the private member `data` in the nested class. + + Note that T is available to the nested `Node` class. When `GenericList` is instantiated with a concrete type, for example as a `GenericList`, each occurrence of `T` will be replaced with `int`. + + [!code-csharp[csProgGuideGenerics#2](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#2)] + + The following code example shows how client code uses the generic `GenericList` class to create a list of integers. Simply by changing the type argument, the following code could easily be modified to create lists of strings or any other custom type: + + [!code-csharp[csProgGuideGenerics#3](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#3)] ## Generics Overview @@ -29,8 +47,6 @@ Generics were added to version 2.0 of the C# language and the common language ru ## Related Sections For more information: -- [Introduction to Generics](../../../csharp/programming-guide/generics/introduction-to-generics.md) - - [Benefits of Generics](../../../csharp/programming-guide/generics/benefits-of-generics.md) - [Generic Type Parameters](../../../csharp/programming-guide/generics/generic-type-parameters.md) diff --git a/docs/csharp/programming-guide/generics/introduction-to-generics.md b/docs/csharp/programming-guide/generics/introduction-to-generics.md deleted file mode 100644 index 39d56892c8722..0000000000000 --- a/docs/csharp/programming-guide/generics/introduction-to-generics.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Introduction to Generics - C# Programming Guide" -ms.custom: seodec18 -ms.date: 07/20/2015 -helpviewer_keywords: - - "generics [C#], about generics" -ms.assetid: a1ad761e-42f7-41dd-a62f-452a2de26b9d ---- -# Introduction to Generics (C# Programming Guide) -Generic classes and methods combine reusability, type safety and efficiency in a way that their non-generic counterparts cannot. Generics are most frequently used with collections and the methods that operate on them. Version 2.0 of the .NET Framework class library provides a new namespace, , which contains several new generic-based collection classes. It is recommended that all applications that target the .NET Framework 2.0 and later use the new generic collection classes instead of the older non-generic counterparts such as . For more information, see [Generics in .NET](../../../standard/generics/index.md). - - Of course, you can also create custom generic types and methods to provide your own generalized solutions and design patterns that are type-safe and efficient. The following code example shows a simple generic linked-list class for demonstration purposes. (In most cases, you should use the class provided by the .NET Framework class library instead of creating your own.) The type parameter `T` is used in several locations where a concrete type would ordinarily be used to indicate the type of the item stored in the list. It is used in the following ways: - -- As the type of a method parameter in the `AddHead` method. - -- As the return type of the `Data` property in the nested `Node` class. - -- As the type of the private member `data` in the nested class. - - Note that T is available to the nested `Node` class. When `GenericList` is instantiated with a concrete type, for example as a `GenericList`, each occurrence of `T` will be replaced with `int`. - - [!code-csharp[csProgGuideGenerics#2](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#2)] - - The following code example shows how client code uses the generic `GenericList` class to create a list of integers. Simply by changing the type argument, the following code could easily be modified to create lists of strings or any other custom type: - - [!code-csharp[csProgGuideGenerics#3](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideGenerics/CS/Generics.cs#3)] - -## See also - -- -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [Generics](../../../csharp/programming-guide/generics/index.md) diff --git a/docs/csharp/programming-guide/generics/toc.yml b/docs/csharp/programming-guide/generics/toc.yml index 97980017edc39..602b950d74e4c 100644 --- a/docs/csharp/programming-guide/generics/toc.yml +++ b/docs/csharp/programming-guide/generics/toc.yml @@ -1,8 +1,6 @@ - name: Generics href: index.md items: - - name: Introduction to Generics - href: introduction-to-generics.md - name: Benefits of Generics href: benefits-of-generics.md - name: Generic Type Parameters diff --git a/docs/csharp/programming-guide/namespaces/index.md b/docs/csharp/programming-guide/namespaces/index.md index 6844e0f633411..3dfcec54ffe7f 100644 --- a/docs/csharp/programming-guide/namespaces/index.md +++ b/docs/csharp/programming-guide/namespaces/index.md @@ -47,6 +47,5 @@ Namespaces have the following properties: - [How to: Use the Global Namespace Alias](how-to-use-the-global-namespace-alias.md) - [How to: Use the My Namespace](how-to-use-the-my-namespace.md) - [Identifier names](../inside-a-program/identifier-names.md) -- [Namespace Keywords](../../language-reference/keywords/namespace-keywords.md) - [using Directive](../../language-reference/keywords/using-directive.md) - [:: Operator](../../language-reference/operators/namespace-alias-qualifer.md) diff --git a/docs/csharp/programming-guide/namespaces/using-namespaces.md b/docs/csharp/programming-guide/namespaces/using-namespaces.md index b032d2af143b3..830065f979b4f 100644 --- a/docs/csharp/programming-guide/namespaces/using-namespaces.md +++ b/docs/csharp/programming-guide/namespaces/using-namespaces.md @@ -86,7 +86,6 @@ Namespaces are heavily used within C# programs in two ways. Firstly, the .NET Fr - [C# Programming Guide](../../../csharp/programming-guide/index.md) - [Namespaces](../../../csharp/programming-guide/namespaces/index.md) -- [Namespace Keywords](../../../csharp/language-reference/keywords/namespace-keywords.md) - [. Operator](../../../csharp/language-reference/operators/member-access-operators.md#member-access-operator-) - [:: Operator](../../../csharp/language-reference/operators/namespace-alias-qualifer.md) - [extern](../../../csharp/language-reference/keywords/extern.md) diff --git a/docs/csharp/programming-guide/statements-expressions-operators/operators.md b/docs/csharp/programming-guide/statements-expressions-operators/operators.md index e9742ccd8d29b..cc8525c37b4c3 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/operators.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/operators.md @@ -81,4 +81,3 @@ You can define the behavior of certain operators for custom classes and structs. - [C# Programming Guide](../index.md) - [Statements, Expressions, and Operators](index.md) - [C# Operators](../../language-reference/operators/index.md) -- [Operator Keywords](../../language-reference/keywords/operator-keywords.md) diff --git a/docs/csharp/programming-guide/statements-expressions-operators/statements.md b/docs/csharp/programming-guide/statements-expressions-operators/statements.md index 692fbde92ff78..a83f3d933f254 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/statements.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/statements.md @@ -21,10 +21,10 @@ The actions that a program takes are expressed in statements. Common actions inc |--------------|---------------------------| |[Declaration statements](#declaration-statements)|A declaration statement introduces a new variable or constant. A variable declaration can optionally assign a value to the variable. In a constant declaration, the assignment is required.| |[Expression statements](expressions.md)|Expression statements that calculate a value must store the value in a variable. For more information, see [Expression Statements](#expression-statements).| -|[Selection statements](../../../csharp/language-reference/keywords/selection-statements.md)|Selection statements enable you to branch to different sections of code, depending on one or more specified conditions. For more information, see the following topics:

[if](../../../csharp/language-reference/keywords/if-else.md), [else](../../../csharp/language-reference/keywords/if-else.md), [switch](../../../csharp/language-reference/keywords/switch.md), [case](../../../csharp/language-reference/keywords/switch.md)| -|[Iteration statements](../../../csharp/language-reference/keywords/iteration-statements.md)|Iteration statements enable you to loop through collections like arrays, or perform the same set of statements repeatedly until a specified condition is met. For more information, see the following topics:

[do](../../../csharp/language-reference/keywords/do.md), [for](../../../csharp/language-reference/keywords/for.md), [foreach](../../../csharp/language-reference/keywords/foreach-in.md), [in](../../../csharp/language-reference/keywords/foreach-in.md), [while](../../../csharp/language-reference/keywords/while.md)| -|[Jump statements](../../../csharp/language-reference/keywords/jump-statements.md)|Jump statements transfer control to another section of code. For more information, see the following topics:

[break](../../../csharp/language-reference/keywords/break.md), [continue](../../../csharp/language-reference/keywords/continue.md), [default](../../../csharp/language-reference/keywords/switch.md), [goto](../../../csharp/language-reference/keywords/goto.md), [return](../../../csharp/language-reference/keywords/return.md), [yield](../../../csharp/language-reference/keywords/yield.md)| -|[Exception handling statements](../../../csharp/language-reference/keywords/exception-handling-statements.md)|Exception handling statements enable you to gracefully recover from exceptional conditions that occur at run time. For more information, see the following topics:

[throw](../../../csharp/language-reference/keywords/throw.md), [try-catch](../../../csharp/language-reference/keywords/try-catch.md), [try-finally](../../../csharp/language-reference/keywords/try-finally.md), [try-catch-finally](../../../csharp/language-reference/keywords/try-catch-finally.md)| +|Selection statements|Selection statements enable you to branch to different sections of code, depending on one or more specified conditions. For more information, see the following topics:

[if](../../../csharp/language-reference/keywords/if-else.md), [else](../../../csharp/language-reference/keywords/if-else.md), [switch](../../../csharp/language-reference/keywords/switch.md), [case](../../../csharp/language-reference/keywords/switch.md)| +|Iteration statements|Iteration statements enable you to loop through collections like arrays, or perform the same set of statements repeatedly until a specified condition is met. For more information, see the following topics:

[do](../../../csharp/language-reference/keywords/do.md), [for](../../../csharp/language-reference/keywords/for.md), [foreach](../../../csharp/language-reference/keywords/foreach-in.md), [in](../../../csharp/language-reference/keywords/foreach-in.md), [while](../../../csharp/language-reference/keywords/while.md)| +|Jump statements|Jump statements transfer control to another section of code. For more information, see the following topics:

[break](../../../csharp/language-reference/keywords/break.md), [continue](../../../csharp/language-reference/keywords/continue.md), [default](../../../csharp/language-reference/keywords/switch.md), [goto](../../../csharp/language-reference/keywords/goto.md), [return](../../../csharp/language-reference/keywords/return.md), [yield](../../../csharp/language-reference/keywords/yield.md)| +|Exception handling statements|Exception handling statements enable you to gracefully recover from exceptional conditions that occur at run time. For more information, see the following topics:

[throw](../../../csharp/language-reference/keywords/throw.md), [try-catch](../../../csharp/language-reference/keywords/try-catch.md), [try-finally](../../../csharp/language-reference/keywords/try-finally.md), [try-catch-finally](../../../csharp/language-reference/keywords/try-catch-finally.md)| |[Checked and unchecked](../../../csharp/language-reference/keywords/checked-and-unchecked.md)|Checked and unchecked statements enable you to specify whether numerical operations are allowed to cause an overflow when the result is stored in a variable that is too small to hold the resulting value. For more information, see [checked](../../../csharp/language-reference/keywords/checked.md) and [unchecked](../../../csharp/language-reference/keywords/unchecked.md).| |The `await` statement|If you mark a method with the [async](../../../csharp/language-reference/keywords/async.md) modifier, you can use the [await](../../../csharp/language-reference/keywords/await.md) operator in the method. When control reaches an `await` expression in the async method, control returns to the caller, and progress in the method is suspended until the awaited task completes. When the task is complete, execution can resume in the method.

For a simple example, see the "Async Methods" section of [Methods](../../../csharp/programming-guide/classes-and-structs/methods.md). For more information, see [Asynchronous Programming with async and await](../../../csharp/programming-guide/concepts/async/index.md).| |The `yield return` statement|An iterator performs a custom iteration over a collection, such as a list or an array. An iterator uses the [yield return](../../../csharp/language-reference/keywords/yield.md) statement to return each element one at a time. When a `yield return` statement is reached, the current location in code is remembered. Execution is restarted from that location when the iterator is called the next time.

For more information, see [Iterators](../../../csharp/programming-guide/concepts/iterators.md).| diff --git a/docs/csharp/programming-guide/statements-expressions-operators/toc.yml b/docs/csharp/programming-guide/statements-expressions-operators/toc.yml index b12e12863c506..489e3280e3273 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/toc.yml +++ b/docs/csharp/programming-guide/statements-expressions-operators/toc.yml @@ -5,38 +5,35 @@ href: statements.md - name: Expressions href: expressions.md - items: - - name: Expression-bodied members - href: expression-bodied-members.md + - name: Expression-bodied members + href: expression-bodied-members.md - name: Operators href: operators.md - name: Anonymous Functions - href: anonymous-functions.md items: + - name: Overview + href: anonymous-functions.md - name: Lambda Expressions href: lambda-expressions.md - items: - - name: "How to: Use Lambda Expressions in a Query" - href: how-to-use-lambda-expressions-in-a-query.md - - name: "How to: Use Lambda Expressions Outside LINQ" - href: how-to-use-lambda-expressions-outside-linq.md + - name: "How to: Use Lambda Expressions in a Query" + href: how-to-use-lambda-expressions-in-a-query.md + - name: "How to: Use Lambda Expressions Outside LINQ" + href: how-to-use-lambda-expressions-outside-linq.md - name: Anonymous Methods href: anonymous-methods.md - name: Overloadable Operators href: overloadable-operators.md - name: Conversion Operators href: conversion-operators.md - items: - - name: Using Conversion Operators - href: using-conversion-operators.md - - name: "How to: Implement User-Defined Conversions Between Structs" - href: how-to-implement-user-defined-conversions-between-structs.md + - name: Using Conversion Operators + href: using-conversion-operators.md + - name: "How to: Implement User-Defined Conversions Between Structs" + href: how-to-implement-user-defined-conversions-between-structs.md - name: default value expressions href: default-value-expressions.md - name: Equality Comparisons href: equality-comparisons.md - items: - - name: "How to: Define Value Equality for a Type" - href: how-to-define-value-equality-for-a-type.md - - name: "How to: Test for Reference Equality (Identity)" - href: how-to-test-for-reference-equality-identity.md + - name: "How to: Define Value Equality for a Type" + href: how-to-define-value-equality-for-a-type.md + - name: "How to: Test for Reference Equality (Identity)" + href: how-to-test-for-reference-equality-identity.md diff --git a/docs/csharp/programming-guide/types/index.md b/docs/csharp/programming-guide/types/index.md index 8dcb3f9105faa..e55c77675159d 100644 --- a/docs/csharp/programming-guide/types/index.md +++ b/docs/csharp/programming-guide/types/index.md @@ -58,7 +58,7 @@ For more information, see [Casting and Type Conversions](../../../csharp/program ## Built-in Types -C# provides a standard set of built-in numeric types to represent integers, floating point values, Boolean expressions, text characters, decimal values, and other types of data. There are also built-in `string` and `object` types. These are available for you to use in any C# program. For more information about the built-in types, see [Reference Tables for Types](../../../csharp/language-reference/keywords/reference-tables-for-types.md). +C# provides a standard set of built-in numeric types to represent integers, floating point values, Boolean expressions, text characters, decimal values, and other types of data. There are also built-in `string` and `object` types. These are available for you to use in any C# program. For more information about the built-in types, see [Reference Tables for built-in Types](../../../csharp/language-reference/keywords/built-in-types-table.md). ## Custom Types diff --git a/docs/csharp/programming-guide/types/toc.yml b/docs/csharp/programming-guide/types/toc.yml index af38ee08c4f34..1ede4362bbeaa 100644 --- a/docs/csharp/programming-guide/types/toc.yml +++ b/docs/csharp/programming-guide/types/toc.yml @@ -1,6 +1,7 @@ - name: Types - href: index.md items: + - name: Use and define types + href: index.md - name: Casting and Type Conversions href: casting-and-type-conversions.md - name: Boxing and Unboxing diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/toc.yml b/docs/csharp/programming-guide/unsafe-code-pointers/toc.yml index 13e08c7896040..05818ce3f24a3 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/toc.yml +++ b/docs/csharp/programming-guide/unsafe-code-pointers/toc.yml @@ -1,6 +1,6 @@ -- name: Unsafe code and pointers - href: index.md items: + - name: Overview and restrictions + href: index.md - name: Fixed size buffers href: fixed-size-buffers.md - name: Pointer types diff --git a/docs/csharp/roslyn-sdk/toc.yml b/docs/csharp/roslyn-sdk/toc.yml index 8bd614de6d4b6..d7ee41c81d49c 100644 --- a/docs/csharp/roslyn-sdk/toc.yml +++ b/docs/csharp/roslyn-sdk/toc.yml @@ -1,6 +1,8 @@ - name: The .NET Compiler Platform SDK (Roslyn APIs) href: index.md items: + - name: Oveview + href: index.md - name: Understand the compiler API model href: compiler-api-model.md - name: Work with syntax diff --git a/docs/csharp/tutorials/working-with-linq.md b/docs/csharp/tutorials/working-with-linq.md index 466e5c208bf22..734eceb280545 100644 --- a/docs/csharp/tutorials/working-with-linq.md +++ b/docs/csharp/tutorials/working-with-linq.md @@ -336,8 +336,8 @@ Aside from LINQ, you learned a bit about a technique magicians use for card tric For more information on LINQ, see: - [Language Integrated Query (LINQ)](../programming-guide/concepts/linq/index.md) - [Introduction to LINQ](../programming-guide/concepts/linq/introduction-to-linq.md) - - [Getting Started With LINQ in C#](../programming-guide/concepts/linq/getting-started-with-linq.md) - - [Basic LINQ Query Operations (C#)](../programming-guide/concepts/linq/basic-linq-query-operations.md) - - [Data Transformations With LINQ (C#)](../programming-guide/concepts/linq/data-transformations-with-linq.md) - - [Query Syntax and Method Syntax in LINQ (C#)](../programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq.md) - - [C# Features That Support LINQ](../programming-guide/concepts/linq/features-that-support-linq.md) + - [Basic LINQ Query Operations (C#)](../programming-guide/concepts/linq/basic-linq-query-operations.md) + - [Data Transformations With LINQ (C#)](../programming-guide/concepts/linq/data-transformations-with-linq.md) + - [Query Syntax and Method Syntax in LINQ (C#)](../programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq.md) + - [C# Features That Support LINQ](../programming-guide/concepts/linq/features-that-support-linq.md) + \ No newline at end of file diff --git a/docs/csharp/whats-new/csharp-version-history.md b/docs/csharp/whats-new/csharp-version-history.md index 50f2cafd1ded1..afa8706a1b319 100644 --- a/docs/csharp/whats-new/csharp-version-history.md +++ b/docs/csharp/whats-new/csharp-version-history.md @@ -40,7 +40,6 @@ The major features of C# 1.0 included: - [Expressions](../programming-guide/statements-expressions-operators/expressions.md) - [Statements](../programming-guide/statements-expressions-operators/statements.md) - [Attributes](../programming-guide/concepts/attributes/index.md) -- [Literals](../language-reference/keywords/literal-keywords.md) ## C# version 1.2 diff --git a/docs/toc.yml b/docs/toc.yml index 41f3bfe725eba..b1a52b6a764e3 100644 --- a/docs/toc.yml +++ b/docs/toc.yml @@ -491,8 +491,9 @@ - name: Additional Class Libraries and APIs href: framework/additional-apis/ - name: C# Guide - href: csharp/index.md items: + - name: Organization of the C# Guide + href: csharp/index.md - name: Get Started href: csharp/getting-started/ - name: Tutorials